Railsのdevise、devise_tokenに関する仕様のまとめ

SaaS開発を行うと認証周りのカスタマイズが発生する。

当社ではdeviseやdevise_tokenのgemを使っているため、認証周りのカスタマイズはこのgemの仕様を把握する必要がある。

仕様を調べるにあたり参考となったサイトやdeviseに関する仕様をまとめていく。

※記事を斜め読みしながらまとめるため、認識違いの発生や事実確認をしたわけではないためご注意ください。

カラムallow_password_changeとは何か?

allow_password_changeはパスワードリセット処理において、認証が成功した場合にfalseからtrueに更新される項目として紹介されている

参考:【Rails】devise_token_auth でパスワードをリセットする流れをまとめる

カラムconfirmation_tokenとは何か?

confirmation_tokenは、メールアドレスの存在確認としてメール本文に特別なURLを生成するためのtokenとして用いられる。

アカウントの払い出し機能がある場合は、confirmation_tokenを活用して認証URL等を生成することになる。

関連カラムは下記のとおり。

  • confirmation_token:このtokenを用いて特別なURLを生成し、メールアドレスの存在確認や本人確認に用いられる
  • confirmed_at:tokenの確認が取れた日時を入れる。この日時の有無が認証済みユーザーかどうかの判断に用いられる
  • confirmation_sent_at:tokenを送付した日時。tokenの有効期限の計算に用いられる。
  • unconfirmed_email:メールアドレスの変更時に用いられる。新しいメールアドレスが記録される。

メールアドレスの存在確認メールを送る

メールアドレスの存在確認メールを送付する方法は下記の通り。

user.send_confirmation_instructions

メールの内容は下記の通り。

https://github.com/heartcombo/devise/blob/main/app/views/devise/mailer/confirmation_instructions.html.erb