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

时间:2015-07-26 04:46:28

标签: angularjs angular-cookies

我最近从角度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控制台中尝试undefined时,我得到$cookies.getObject('user')

这是一个问题,因为现在每当我刷新页面时,我都会失去登录用户。 Auth.js服务有这个排队:

    // Get currentUser from cookie
    $rootScope.currentUser = $cookies.getObject('user') || null;

1 个答案:

答案 0 :(得分:1)

我注意到角度在控制台发出警告......我错过了。我的目标是超过4093的cookie大小限制。我的是4207。

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

我最初将用户对象放在localStorage中,但这成了一个管理噩梦 - 每当用户更新时(这可能发生在应用程序的多个位置)......我将不得不刷新{ {1}}。

相反,我会在每次刷新页面上执行此操作:

localStorage