Angularjs $cookies.putObject在angular 1.4中不工作

Angularjs $cookies.putObject在angular 1.4中不工作,angularjs,angular-cookies,Angularjs,Angular Cookies,我从最近的angular 1.2(原始代码)升级到1.3(破坏了cookies)到今天的1.4($cookieStore现在因$cookies而被弃用) 我添加了一行$cookies.putObject('user',user)但它没有保存到cookies(我在chrome资源选项卡中验证) 我在chrome控制台中尝试$cookies.getObject('user')时,在$cookies.getObject('user')之后放置了一个断点,并且得到了未定义的 这是一个问题,因为现在每当我

我从最近的angular 1.2(原始代码)升级到1.3(破坏了cookies)到今天的1.4($cookieStore现在因$cookies而被弃用)

我添加了一行
$cookies.putObject('user',user)但它没有保存到cookies(我在chrome资源选项卡中验证)

我在chrome控制台中尝试
$cookies.getObject('user')
时,在
$cookies.getObject('user')
之后放置了一个断点,并且得到了
未定义的

这是一个问题,因为现在每当我刷新页面时,我都会丢失已登录的用户。
Auth.js
服务的前端有这样一行:

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

我注意到angular在控制台上放了一个警告…我没注意到。我的对象超出了cookie大小限制4093。我的是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;
        });

可能是个愚蠢的问题,但您已经验证了Session.save正确地传回了用户,而不是未定义的传回了用户?函数(user){$rootScope.currentUser=user;$cookies.putObject('user',user);//不保存返回cb();}yup。我肯定有一个用户对象。但我想我解决了我的问题…我发现我的对象太大,无法放入cookie中。这是用户服务模块:)
    // Get currentUser from cookie
    $rootScope.currentUser = $cookies.get('userId');

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