angularjs – $cookies.putObject无法在角度1.4中工作

前端之家收集整理的这篇文章主要介绍了angularjs – $cookies.putObject无法在角度1.4中工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近从角度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;
        });

猜你在找的Angularjs相关文章