![](/img/trans.png)
[英]Rails 4: Does Devise address session fixation by resetting session after login?
[英]Rails devise does not start session after registration
我正在使用devise 3.2.2
运行Rails 4应用程序。
当用户从电子邮件链接确认注册时,会话不会开始。 用户必须再次通过身份验证。
预期的:确认注册会导致网页上的会话经过完全认证。
在模型中
user.rb
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
session_store.rb:
Thumbs::Application.config.session_store :cookie_store, key: '_my_session'
尽管这对于许多人来说可能是显而易见的,但我为此付出了一些努力。 有人可以伸出援手吗?
这曾经是发生过的事情,但是那是在Devise 3.1之前的事情。 从Devise 3.1开始,该方法是让用户单击确认电子邮件中的链接后不自动登录。 这是更安全的方法,因为它可以防止其他人抓住他们的电子邮件(或者他们在注册时只是拼写了错误的地址,而该地址恰好是其他人的地址,因此他们的确认成功发送给了错误的人),并且然后其他人可以使用该链接立即登录其帐户。
仅对于3.1,存在允许旧行为的选项。 您可以设置标志config.allow_insecure_sign_in_after_confirmation
以在单击确认链接后启用自动登录。 但是,这是一个临时功能,在3.2中已删除。 您可以在此处看到将其删除的提交(也删除了查找未哈希的确认/锁定令牌,这是提高安全性的另一项更改):
https://github.com/plataformatec/devise/commit/6b3b0c5e8c57253d3d178def678ccc26e66cd630
这是博客文章,宣布对3.1的更安全方法进行了更改:
http://blog.plataformatec.com.br/2013/08/devise-3-1-now-with-more-secure-defaults/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.