繁体   English   中英

注册后Rails devise无法启动会话

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM