はじめに
こんにちは。
Rails書き始めて4ヶ月になりました。
今回はdeviseを使用したユーザ認証基盤において、パスワードリセット時にメールアドレス以外の値もチェック項目として追加してみました。
参考になれば幸いです
結論
以下では、emailとusernameの2つの値でチェックしています。
user.rb
class User < ApplicationRecord
devise reset_password_keys: %i[email username]
end
あとは、formでusernameもPOSTされるようにすればOKです
解説
パスワードリセット時のkeyは以下でemail
がデフォルトで設定されています。
こちらを上書きすることでkeyを増やすことができます。
上書きはconfigで指定もできますし、いくつかのユーザモデルを保持している場合、それぞれで変更したい場合はモデルでの記載がおすすめです。
モデルでconfigの上書きをする場合は、以下に記載の通り、deviseメソッドでハッシュで渡すことができます
おわりに
devise便利ですね。認証基盤が簡単にできるのは素敵です
以下記事を参考にさせていただきました。こちらでは、クラスメソッドを生やしていますが、本記事のようにconfigで設定が可能です。
それでは!