Вот мой код:
account_manager.js:
```js
// account_manager.js

var AccountManager = (function() {

    // Приватные функции для управления куки
    function setCookie(name, value, days) {
        var expires = "";
        if (days) {
            var date = new Date();
            date.setTime(date.getTime() + (days*24*60*60*1000));
            expires = "; expires=" + date.toUTCString();
        }
        // Кодируем значение перед установкой
        document.cookie = name + "=" + encodeURIComponent(value || "")  + expires + "; path=/";
    }

    function getCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i].trim(); // Используем trim() для удаления лишних пробелов
            if (c.indexOf(nameEQ) === 0) {
                // Декодируем значение перед возвратом
                return decodeURIComponent(c.substring(nameEQ.length,c.length));
            }
        }
        return null;
    }

    function eraseCookie(name) {
        document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    }

    // Публичные функции
    return {

        // Установка токена в куки
        setToken: function(token, days=7) {
            setCookie('auth_token', token, days);
        },

        // Получение токена из куки
        getToken: function() {
            return getCookie('auth_token');
        },

        // Удаление токена из куки (выход из аккаунта)
        logout: function() {
            alert(getCookie('auth_token'))
            eraseCookie('auth_token');
            alert(getCookie('auth_token'))
            // Перенаправляем пользователя на страницу входа

        },

        // Получение информации об аккаунте
        getAccountInfo: function(callback) {
            $.ajax({
                url: '/api/account',
                type: 'GET',
                // Куки отправляются автоматически, так как тот же домен
                // Если ваш API находится на другом домене, добавьте withCredentials: true
                success: function(response){
                    if(callback && typeof callback === 'function') {
                        callback(null, response);
                    }
                },
                error: function(xhr){
                    if(callback && typeof callback === 'function') {
                        if(xhr.responseJSON && xhr.responseJSON.message){
                            callback(xhr.responseJSON.message, null);
                        } else {
                            callback("Произошла ошибка при получении информации об аккаунте.", null);
                        }
                    }
                }
            });
        },

        // Проверка, авторизован ли пользователь
        isAuthenticated: function() {
            return !!this.getToken();
        }

    };

})();
```

login.js:
```js
// login.js

$(document).ready(function() {

    // Обработчик кнопки логина
    $('#login-btn').on('click', function(e){
        e.preventDefault(); // Предотвращаем перезагрузку страницы

        var username = $('.login-field').val().trim();
        var password = $('.password-field').val().trim();

        if(username === "" || password === "") {
            alert("Пожалуйста, введите логин и пароль.");
            return;
        }

        $.ajax({
            url: '/api/login',
            type: 'POST',
            contentType: 'application/json',
            data: JSON.stringify({username: username, password: password}),
            success: function(response){
                if(response.token){
                    // Используем AccountManager для сохранения токена
                    AccountManager.setToken(response.token, 7);
                    alert(AccountManager.getToken())
                    alert("Успешный вход!");
                    window.location.href = '/main';
                } else {
                    alert("Токен не получен. Повторите попытку.");
                }
            },
            error: function(xhr){
                if(xhr.responseJSON && xhr.responseJSON.message){
                    alert(xhr.responseJSON.message);
                } else {
                    alert("Произошла ошибка. Пожалуйста, попробуйте позже.");
                }
            }
        });
    });

    // Обработчик кнопки регистрации
    $('#register-btn').on('click', function(e){
        e.preventDefault(); // Предотвращаем перезагрузку страницы

        var username = $('.login-field').val().trim();
        var password = $('.password-field').val().trim();

        if(username === "" || password === "") {
            alert("Пожалуйста, введите логин и пароль.");
            return;
        }

        $.ajax({
            url: '/api/register',
            type: 'POST',
            contentType: 'application/json',
            data: JSON.stringify({username: username, password: password}),
            success: function(response){
                alert(response.message);
                // Очистка полей и предложение войти
                $('.login-field').val('');
                $('.password-field').val('');
            },
            error: function(xhr){
                if(xhr.responseJSON && xhr.responseJSON.message){
                    alert(xhr.responseJSON.message);
                } else {
                    alert("Произошла ошибка. Пожалуйста, попробуйте позже.");
                }
            }
        });
    });

});
```
Вход работает, после него getAccountInfo спокойно отправляет куки на серер, но вот `alert(AccountManager.getToken())` возвращает null.

Я предполагаю, что это какая-то защита стоит, чтобы нельзя было это получить или что-то в этом роде, т.к. даже после переключения на другую страницу /, то ничего не меняется, он все также продолжает получать null из куки. А вот если использовать другое название, то все работает и получается