sorceryの細かい設定
sorceryを触っていて、気になったことがあったので記事として残す。
背景
railsのgem sorceryをユーザー認証として採用した。
sorceryのreset password機能も組み込んだが、間髪入れずに何回か連続で実行するも
1回目のメールしか届かなかった。
やりたいこと
メールの送信間隔を自由に設定したい。
方法
ドキュメントに従って、以下コマンドを入力すると
config/initializersにsorcery.rbが生成される。
rails g sorcery:install
sorcery.rbを細かく見ると、以下のような記述がある。
# Hammering protection: how long in seconds to wait before allowing another email to be sent. # Default: `5 * 60` # # user.reset_password_time_between_emails =
デフォルトでは、5 * 60 の300秒(5分)となっているとのこと。
コメントアウトを外し、ここの数字を設定してあげる。
# Hammering protection: how long in seconds to wait before allowing another email to be sent. # Default: `5 * 60` # user.reset_password_time_between_emails = 5
以上のようにすると、5秒間隔でメールが送れるようになる。
メールが届かないのは意外と不安になるので、この設定はそこそこ大事かもしれない。
備考
また、よくあるリセットパスワードURLの有効期間もsorcery.rbで自由に設定できる。
以下記述を見つける。
# How many seconds before the reset request expires. nil for never expires. # Default: `nil` # # user.reset_password_expiration_period =
コメント部分を和訳すると、
リセットパスワードのURL生成した後、何秒で無効化されるか。 nilの場合、一生有効のまま。
とのこと。
従って、この部分を
user.reset_password_expiration_period = 600
のようにしてあげると、10分間で切れるURLを生成することができる。