簡體   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