Laravel で古いパスワードリセットトークンを削除する
auth:clear-resets コマンドとは
php artisan auth:clear-resets
このコマンドは password_resets テーブルに残っている期限切れのトークンをすべて削除 します。
運用中のアプリでは、リセットリンクを使い終わったトークンが残り続けると、テーブルサイズが肥大化し、クエリが遅くなる恐れがあります。
定期的にこのコマンドを走らせることで、DB の健全性を保てます。
コマンド実行のポイント
| オプション | 役割 | 例 |
|---|---|---|
--broker=ブローカー名 |
複数のパスワードブローカーを使っている場合、対象を限定 | php artisan auth:clear-resets --broker=admin |
デフォルト
ブローカー名を指定しない場合はconfig/auth.phpのdefaults.passwordsが対象になります。
実務での運用例
1. 手動で実行
パスワードリセットフローの完了時などに、開発者が手動で実行します。
php artisan auth:clear-resets
2. Laravel Scheduler で自動実行
// app/Console/Kernel.php
protected function schedule(Schedule $schedule)
{
// 週に一度実行
$schedule->command('auth:clear-resets')->weekly();
}
crontab で Laravel のスケジューラを定期的に走らせるだけで、手間なく定期クリーニングができます。
参考情報
- Laravel Docs: Artisan Commands – Clear Password Resets
- Laravel Docs: Password Reset
- Laravel Scheduler
公式ドキュメントは常に最新版で確認するようにしてください。
まとめ
php artisan auth:clear-resetsは 期限切れトークンを一括削除 するだけのシンプルなコマンドです。--brokerオプションで複数ブローカーを持つアプリでも安全に対象を絞れます。- 週次・月次で Laravel Scheduler に登録すれば、DB の肥大化を自動で防止できます。
これで、パスワードリセット関連のデータ管理を安心して運用できます。

