![]() |
1
10
我花了一段时间思考这个问题,得出了一些结论。默认情况下,Rails会话cookie是防篡改的,因此您不必担心在客户端修改cookie。 以下是我所做的:
当用户选中“记住我”框时,我只是将会话[:expireson]日期设置为登录+2周。没有人可以窃取cookie并永久登录,或者伪装成另一个用户,因为Rails会话cookie是防篡改的。 |
![]() |
2
27
几乎可以肯定,您不应该将会话cookie扩展为长寿。 虽然没有专门处理铁轨 this article 详细解释“记住我”的最佳实践。 总之,你应该:
作者还建议使随机值无效,并在每次登录时重置cookie。就个人而言,我不喜欢这样,因为你不能在两台电脑上登录一个网站。我倾向于确保我的密码更改功能也会重置随机值,从而锁定其他机器上的会话。 最后一点要注意的是,他给出的关于使某些功能(密码更改/电子邮件更改等)不可用于自动认证会话的建议值得关注,但在现实世界中很少见到。 |
![]() |
3
9
我建议您要么看一下Restful_身份验证插件,它实现了这一点,要么将您的实现切换为使用Restful身份验证插件。关于如何在Railscants上使用此插件有一个很好的解释: railscasts #67 restful_authentication 这里有一个到插件本身的链接 |
![]() |
4
5
restful_身份验证插件很好地实现了这一点: http://agilewebdevelopment.com/plugins/restful_authentication |
![]() |
5
3
注意,你不想坚持他们的会话,只想坚持他们的身份。当他们返回到您的站点时,您将为他们创建一个新的会话。通常,您只需为用户分配一个guid,将其写入他们的cookie,然后在他们回来时使用它来查找他们。不要使用他们的登录名或用户ID作为令牌,因为它很容易被猜到,并且允许狡猾的访问者劫持其他用户的帐户。 |
![]() |
6
3
这是一篇很好的关于一个家伙创造30天持续会议经验的文章。 警告:博客帖子来自2006年 http://grahamglass.blogs.com/main/2006/05/rails_sessionsr.html |
![]() |
7
3
我会为Rails设计一个出色的身份验证解决方案。 |
![]() |
8
2
这对我来说很有吸引力: http://squarewheel.wordpress.com/2007/11/03/session-cookie-expiration-time-in-rails/ 现在,我的CookieStore会话将在两周后到期,因此用户必须再次提交登录凭证,以便持续登录两周。 基本上,它简单如下:
|
![]() |
Stilian · 存储库设置中没有Github页面部分 2 年前 |
![]() |
Kellen · 查看$卷展栏功能列表 2 年前 |
![]() |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
![]() |
johncssjs · 将数组转换为每个元素的嵌套哈希 2 年前 |
![]() |
solidsnake99 · Rails db:如何绕过验证 2 年前 |