ユーザーがアカウントを確認した後、電子メールに送信されたリンクをクリックすると、自動的にサインインします。この特性を無効にするにはどうすればよいですか? 出来ますか?
1 に答える
これは、devise 3.1 より前のバージョンのデフォルトの動作であり、私の知る限り、簡単に変更する方法はありません。devise をオーバーライドする必要があると思いますConfirmationsController
。
3.1 で動作が変更されたため、デフォルトでは、確認リンクを使用した後、ユーザーはログインされません。ログインの古い動作を維持したい場合はconfig.allow_insecure_sign_in_after_confirmation = true
、config/initializers/devise.rb
.
コメントで説明したように、devise 2.2.4 から 3.2.4 にアップグレードすると、動作が希望どおりに変わりました。
Devise 3.1 では、他にも多くのセキュリティ関連の変更が導入されました。詳細については、http: //blog.plataformatec.com.br/2013/08/devise-3-1-now-with-more-secure-defaults/をご覧ください。
3.1 での他の変更点の 1 つは、確認/リセット/ロック解除トークンがデータベースにダイジェストされて保存されることでした。そのため、以前に保存されたトークンは、理想的にはトークンを要求したばかりのユーザーが使用できるように一時的に設定config.allow_insecure_token_lookup = true
しない限り機能しません。config/initializers/devise.rb
ただし、この行を削除すると、今後のすべてのルックアップで、消化されたトークンがデータベースにあると想定されます。詳細については、上記のリンクを参照してください。