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

ruby-on-rails – Cookie可能因为太大而无法设置或溢出

发布时间:2020-12-17 02:23:39 所属栏目:百科 来源:网络整理
导读:使用有关如何使用devise和angular作为前端实现rails身份验证的教程. http://www.sotoseattle.com/blog/2014/10/30/Devise-Angular-Rails/ 除了我在尝试登录时遇到的cookie错误,或者当我注册时,因为有效的注册用户自动登录后,所有这些都很好. 我得到的错误是
使用有关如何使用devise和angular作为前端实现rails身份验证的教程.

http://www.sotoseattle.com/blog/2014/10/30/Devise-Angular-Rails/

除了我在尝试登录时遇到的cookie错误,或者当我注册时,因为有效的注册用户自动登录后,所有这些都很好.

我得到的错误是:

Cookie 'logged_user' possibly not set or overflowed because it was too large (8279 > 4096 bytes)!

角度中的signIn函数:

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

完全可以使用cookies吗?我认为问题来自这一行:

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

但是在js或角度方面不是很有经验,我不知道如何去做.任何帮助,将不胜感激.谢谢.

解决方法

使用cookie来管理会话很好,但8k是一个非常大的cookie.如您所见,尺寸限制为4k.

请记住,您的cookie将在浏览器的每个请求中发送到服务器. (大型,恕我直言)4k限制的原因是您希望您的请求很轻.每次使用cookie存储向会话哈希添加任何内容时,都会将其添加到cookie中.你确定你需要放在那里的所有东西吗?

有关提及此限制并描述会话存储的文档,请检查http://api.rubyonrails.org/classes/ActionDispatch/Session/CookieStore.html

(编辑:李大同)

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

    推荐文章
      热点阅读