gpt4 book ai didi

angularjs - $cookies.putObject 在 angular 1.4 中不起作用

转载 作者:行者123 更新时间:2023-12-01 05:02:36 28 4
gpt4 key购买 nike

我最近从 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 后面加了一个断点我得到 undefined当我尝试时 $cookies.getObject('user')在 chrome 控制台中。

这是一个问题,因为现在每当我刷新页面时,我都会丢失登录用户。 Auth.js服务有这条线:
    // Get currentUser from cookie
$rootScope.currentUser = $cookies.getObject('user') || null;

最佳答案

我注意到 angular 在控制台中发出警告......我错过了。我的对象超过了 4093 的 cookie 大小限制。我的是 4207。

所以我所做的是保存 userId到cookie...它允许我对登录用户的所有检查工作,并更新代码以从服务器获取登录用户对象。

我最初是将用户对象放在 localStorage 中但这变成了管理噩梦——每当用户更新时(这可能发生在应用程序的多个地方)......我必须刷新 localStorage .

相反,我在每次页面刷新时都这样做:

    // Get currentUser from cookie
$rootScope.currentUser = $cookies.get('userId');

User.get().$promise
.then(function(user){
$rootScope.currentUser = user._id && user || null;
});

关于angularjs - $cookies.putObject 在 angular 1.4 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31633722/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com