Ruby on rails Cookie可能未设置或溢出,因为它太大

Ruby on rails Cookie可能未设置或溢出,因为它太大,ruby-on-rails,angularjs,Ruby On Rails,Angularjs,使用有关如何使用Desive和angular作为前端实现rails身份验证的教程 除了尝试登录或注册时出现的cookie错误之外,其他都很好,原因是在有效注册用户自动登录之后 我得到的错误是: Cookie 'logged_user' possibly not set or overflowed because it was too large (8279 > 4096 bytes)! 符号功能在角度: $scope.signIn = function(new_user){ dat

使用有关如何使用Desive和angular作为前端实现rails身份验证的教程

除了尝试登录或注册时出现的
cookie
错误之外,其他都很好,原因是在有效注册用户自动登录之后

我得到的错误是:

Cookie 'logged_user' possibly not set or overflowed because it was too large (8279 > 4096 bytes)!
符号功能在角度:

$scope.signIn = function(new_user){
  data = { user: new_user };
  $http.post('/users/sign_in', data)
  .success(function(data){
    $scope.user = {};
    $cookieStore.put('logged_user', data);
    $scope.setForm('');
    $location.path('/dashboard');
  })
  .error(function(data,status){
    console.log(data);
    console.log(status);
  });
};
使用饼干可以吗?我认为问题来自这一行:

$cookieStore.put('logged_user', data);

但由于在js或angular方面不是很有经验,我不知道该怎么做。任何帮助都将不胜感激。谢谢。

使用cookie管理会话很好,但8k是一个相当大的cookie。如您所见,大小限制为4k


请记住,浏览器发出的每个请求都会将cookie发送到服务器。(大,IMHO)4k限制的原因是您希望您的请求是轻的。无论何时使用cookie存储向会话哈希添加任何内容,都是在将其添加到cookie中。你确定你需要所有你放进去的东西吗


对于提到此限制并描述会话存储的文档,请检查

“您确定需要您放在其中的所有内容吗?”-:)好问题,不,我不确定。。我希望在这个cookie中只有一种用于标识用户的密钥。。此外,我不确定我是否了解cookie中还保存了哪些东西,使其如此庞大,以及如何消除不必要的东西。默认情况下,cookiestore仅经过签名。您可以选择加密或加密并签名。你可以试着解码,看看里面是什么。如果内存可用,它是以64为基数编码的。参考页应该会告诉你。通常,我在会话cookie中使用ID值来引用数据库表。我可以使用cookie中的ID从该表中检索到我需要跟踪的关于某人的任何信息。我从chrome控制台中删除了该应用程序使用的cookie,刷新页面以生成新的cookie,大小为301,然后我键入电子邮件并通过身份验证,我在浏览器的js控制台中看到一个html版本的
登录
操作,我查看了网络选项卡,发现请求是
POST text/html
,因此响应也是html而不是json。Angular将响应(html代码)保存到
数据中
,并将其放入
cookies中
。。我就是这么看的,对吗?你可能想切换到金丝雀,从那里开始,看看来回发送的cookie中到底有什么东西。你是否能够注销?如果不能,那么设计并提供注销的方法。也许这对你有帮助。@VinayGupta要想注销,我需要先登录,但我无法登录。Desive提供注销的方法,但在将其与angular一起使用时,此方法不会立即生效。是否需要cookie中的用户数据?否则,您可以将用户数据存储在本地存储器中。