質問: ### 前提・実現したいこと rubyのdeviseを使ってログイン処理を実装しています。 登録されているメールアドレスにtoken付きのURL発行して、確認メールにあるリンクをクリックしたら即ログインできるようにしたいです。 近い機能としてdeviseの「views/users/passwords/new.html.erb」で登録されている メールアドレス宛にtoken付きのURLを発行しているので、可能ならば、この処理内で パスワードをスルーしてログインできるようにすることは可能でしょうか? もし可能であれば、どのように記述すればいいのでしょうか? 発行されているtokenが暗号化?複合化?してあるので照合の仕方がわかりません。 ユーザーが新規登録時に間違ったemailアドレスを記入した場合やたまたまそのemailを受け取った第三者にアカウントを乗っ取られてします可能性がありますが、こちらは考えないものとします。 ### 該当のソースコード ``` class Users::PasswordsController < Devise::PasswordsController # GET /resource/password/edit?reset_password_token=abcdef # def edit # ここで受け取ったtokenでuserテーブルのtokenと照合して一致すればログイン後の画面へ遷移。しなければroot_pathへ # end # PUT /resource/password # def update # end end ``` ### 補足情報(FW/ツールのバージョンなど) rails 5.2.3 ruby 2.6.3p62 devise 4.7.0
回答: 実装したことはないのですが、devise公式wikiに該当の記事がありましたのでこちらを参考にしてみてはいかがでしょうか? **How To: Email only sign up** sorceryだとqiitaの記事がありました。 **【Rails × sorcery】Slackみたいなパスワードなしのメールだけログイン機能を実装してみる**