【发布时间】:2015-10-16 11:53:10
【问题描述】:
我最近从 angular 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 控制台中尝试 $cookies.getObject('user') 时,我得到了 undefined。
这是一个问题,因为现在每当我刷新页面时,我都会失去登录用户。 Auth.js 服务前面有这行:
// Get currentUser from cookie
$rootScope.currentUser = $cookies.getObject('user') || null;
【问题讨论】:
-
也许是一个愚蠢的问题,但您已经验证 Session.save 正确地传回用户而不是传回未定义?功能(用户){ $rootScope.currentUser = 用户; $cookies.putObject('user', user); //不保存 return cb(); }
-
是的。我肯定有一个用户对象。但我想我发现了我的问题......我发现我的对象太大而无法放入 cookie。