Данные cookie AngularJS возвращаются как неопределенные после обновления страницы

Я использую AngularJS для проекта веб-разработки, и я застрял, потому что я пытаюсь сохранить сеанс пользователя в файле cookie, чтобы он не мог получить доступ к странице входа или регистрации, когда они уже вошли в систему, а также для различных других причины.

Кажется, что происходит то, что я сохраняю пользовательские данные в cookie, и я использовал console.log(), чтобы вернуть данные, сохраненные в cookie, и процесс сохранения, кажется, работает. Однако, когда я пытаюсь получить доступ к экрану входа в систему, я все еще могу это сделать.

Поэтому для целей отладки я добавил еще один console.log(), чтобы проверить данные, хранящиеся в cookie, когда страница входа принята и возвращается как неопределенная.

Кто-нибудь знает, в чем проблема в моем коде, который вызывает сброс данных?

  function login(email, password, callback) {
        return $http.post('/api/v1/auth/login/', {
                email: email,
                password: password
            }).then(function(data, status, headers, config) {
                Authentication.setAuthenticatedAccount(data.data);
                window.location = '/:username';
            }, function (response) {
                var response;
                response = { success: false, message: 'Username or password is incorrect' };
                callback(response);
                console.error('Epic failure!');
            });
 /**
 * @name getAuthenticatedAccount
 * @desc Return the currently authenticated account
 * @returns {object|undefined} Account if authenticated, else `undefined`
 * @memberOf hrlite.authentication.services.Authentication
 */

function getAuthenticatedAccount() {
    if (!$cookies.authenticatedAccount){
        return;
    }

    return $cookies.getObject('authenticatedAccount');
}
/**
 * @name isAuthenticated
 * @desc Check if the current user is authenticated
 * @returns {boolean} True is user is authenticated, else false.
 * @memberOf hrlite.authentication.services.Authentication
 */
function isAuthenticated() {
    console.log("account:" + getAuthenticatedAccount());

    return !!$cookies.authenticatedAccount;
}

 /**
 * @name setAuthenticatedAccount
 * @desc Stringify the account object and store it in a cookie
 * @param {Object} user The account object to be stored
 * @returns {undefined}
 * @memberOf hrlite.authentication.services.Authentication
 */

function setAuthenticatedAccount(account) {

    $cookies.putObject('authenticatedAccount', account);
}

0 ответов

Другие вопросы по тегам