LoginSignup
0
0

More than 1 year has passed since last update.

Railsのdeviseでパスワードリセット時にメールアドレス以外の値もチェック項目として使用する

Posted at

はじめに

こんにちは。
Rails書き始めて4ヶ月になりました。

今回はdeviseを使用したユーザ認証基盤において、パスワードリセット時にメールアドレス以外の値もチェック項目として追加してみました。

参考になれば幸いです:bow:

結論

以下では、emailとusernameの2つの値でチェックしています。

user.rb
class User < ApplicationRecord
  devise reset_password_keys: %i[email username]
end

あとは、formでusernameもPOSTされるようにすればOKです:ok_hand:

解説

パスワードリセット時のkeyは以下でemailがデフォルトで設定されています。

こちらを上書きすることでkeyを増やすことができます。

上書きはconfigで指定もできますし、いくつかのユーザモデルを保持している場合、それぞれで変更したい場合はモデルでの記載がおすすめです。

モデルでconfigの上書きをする場合は、以下に記載の通り、deviseメソッドでハッシュで渡すことができます

おわりに

devise便利ですね。認証基盤が簡単にできるのは素敵です:pray:

以下記事を参考にさせていただきました。こちらでは、クラスメソッドを生やしていますが、本記事のようにconfigで設定が可能です。

それでは!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0