⭐️パスワードリセットとは?

└パスワードを変更したい場合に、任意で変更することができるツールのこと。

Rails上で実装するためには以下の手順で実装していく!

==============================

①:localhost3000にて「パスワードを忘れた方」をクリックすると「パスワードリセット申請」画面へ推移するようにする。

②:現在のメールアドレスを入力すれば、メールアドレス宛に「パスワード再発行メール」が届くようにする。

③:パスワード再発行メール(letter-opener)のリンクをクリックすると、パスワードリセット用リンクに飛ぶようにする。

④:パスワードリセット用の画面にて新しいパスワードを設定後に、ログイン画面へ遷移するようにする。

⑤:新しいパスワードにてログインできる状態にする。

==============================

実際の手順:

$ rails g sorcery:install reset_password --only-submodules でsorceryのReset passwordモジュールをインストールする。

└Reset passwordモジュールをインストールすることで、rails上で使えるようになる。

[ターミナル上]
rails g sorcery:install reset_password --only-submodules

[以下ファイルが生成される]
Running via Spring preloader in process 71125
        gsub  config/initializers/sorcery.rb
      insert  app/models/user.rb
      create  db/migrate/20211009040003_sorcery_reset_password.rb
class SorceryResetPassword < ActiveRecord::Migration[5.2]
def change
   add_column :users, :reset_password_token, :string, default: nil
   add_column :users, :reset_password_token_expires_at, :datetime, default: nil
   add_column :users, :reset_password_email_sent_at, :datetime, default: nil
   add_column :users, :access_count_to_reset_password_page, :integer, default: 0

    add_index :users, :reset_password_token, **unique: true (追加する)**
  end
end

resources :password_resets, only: %i[new create edit update]