T-file

一歩踏み出す勇気を全力で応援するブログ

【Laravel Email Verification】メールアドレス認証の有効期間を設定する方法

こんにちは、webエンジニア歴4年のtakaです。

今回はLaravelのメールアドレス認証の際のURLの有効期間の設定方法について解説していきます。

それでは早速見ていきましょう!

メールアドレス認証の有効期間を設定する方法

早速本題、config/auth.php のreturn内に以下を追記しましょう。

'verification' => [
  'expire' => 86400, // 有効期間を1日に設定
],

これで設定が完了です。

expire(期限切れ)の値の単位は秒です。

時間と秒の関係をまとめました(ご参考に)。

1分 60秒
1時間 3600秒
3時間 10800秒
1日 86400秒
3日 259200秒

深く知りたい人へ

なぜconfig/auth.phpに追記するとメールアドレス認証の有効期間を設定できるかというと、
app/Notifications/VerifyEmailJapanese.phpにこのような記載があります。

protected function verificationUrl($notifiable)
 {
  return URL::temporarySignedRoute(
   'verification.verify',
   Carbon::now()->addMinutes(Config::get('auth.verification.expire', 60)), // 有効期間の設定箇所
   [
    'id' => $notifiable->getKey(),
    'hash' => sha1($notifiable->getEmailForVerification()),
   ]
 );
}

有効期間の設定はここですね。

Carbon::now()->addMinutes(Config::get('auth.verification.expire', 60))

configファルダ内のauth.phpファイルのverification[‘expire’]の値が存在すればその値を、なければ60が採用され、現在時刻から指定した秒数追加された時間が有効期限に設定されます。

まとめ

今回はメールアドレス認証の有効期限の設定方法について解説していきました。

それでは良い開発ライフを!

参考:Laravel 5.7 email verification expiration time