我最近从角度1.2(原始代码)升级到1.3(打破了cookie)到今天的1.4($ cookieStore现已弃用$ cookies)
我添加了一行$cookies.putObject('user', user);
,但未将其保存到Cookie(我在Chrome资源标签中验证)
/**
* Authenticate user
*
* @param {Object} user - login info
* @param {Function} callback - optional
* @return {Promise}
*/
login: function (user, callback) {
var cb = callback || angular.noop;
return Session.save({
email: user.email,
password: user.password
}, function (user) {
$rootScope.currentUser = user;
$cookies.putObject('user', user); //does not save
return cb();
}, function (err) {
return cb(err);
}).$promise;
},
我在$cookies.putObject
后面放了一个断点,当我在chrome控制台中尝试undefined
时,我得到$cookies.getObject('user')
。
这是一个问题,因为现在每当我刷新页面时,我都会失去登录用户。 Auth.js
服务有这个排队:
// Get currentUser from cookie
$rootScope.currentUser = $cookies.getObject('user') || null;
答案 0 :(得分:1)
我注意到角度在控制台发出警告......我错过了。我的目标是超过4093的cookie大小限制。我的是4207。
所以我所做的就是将userId
保存到cookie ...这允许我对登录用户的所有检查工作,并更新代码以从服务器获取登录的用户对象。
我最初将用户对象放在localStorage
中,但这成了一个管理噩梦 - 每当用户更新时(这可能发生在应用程序的多个位置)......我将不得不刷新{ {1}}。
相反,我会在每次刷新页面上执行此操作:
localStorage