Данные 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);
}