加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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;
        });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读