angularjs – $cookies.putObject无法在角度1.4中工作
发布时间:2020-12-17 16:56:39 所属栏目:安全 来源:网络整理
导读:我最近从角度1.2(原始代码)升级到1.3(打破了cookie)到今天的1.4($cookieStore现已弃用$cookies) 我添加了一行$cookies.putObject(‘user’,user);但它没有保存到cookie(我在chrome资源选项卡中验证) /** * Authenticate user * * @param {Object} user - log
我最近从角度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’)时,我得到了未定义的. 这是一个问题,因为现在每当我刷新页面时,我都会失去登录用户. 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; }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |