使用有关如何使用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或角度方面不是很有经验,我不知道如何去做。任何帮助,将不胜感激。谢谢。
答案 0 :(得分:3)
使用cookie来管理会话很好,但8k是一个非常大的cookie。正如您所见,尺寸限制为4k。
请记住,您的cookie将在浏览器的每个请求中发送到服务器。 (大型,恕我直言)4k限制的原因是您希望您的请求很轻。每次使用cookie存储向会话哈希添加任何内容时,都会将其添加到cookie中。你确定你需要放在那里的所有东西吗?
有关提及此限制并描述会话存储的文档,请查看http://api.rubyonrails.org/classes/ActionDispatch/Session/CookieStore.html