質問: laravelでユーザ登録をした場合に、登録をしたメールにURLをつけて、 そのURLをクリックしたら、本登録という処理をやっています。 この処理は正常に動いていますが、 このURLに期限をつけたい(例えば3時間以内)のですが、これを実現するためには、 どうしたらいいでしょうか? ちなみに、パスワードリセットで、入力したメールのURLの有効期限は、 config/auth.phpで、 ``` 'password' => [ 'table' => 'password_resets', 'expire' => 180, ], ``` と設定し、3時間で期限が切れます。 宜しくお願いします。
回答: JWT(Json Web Token)を使ってみてはいかかでしょうか?ご質問のようなケースで広く使われています。 認証情報(ユーザIDなどのタダのjson)や有効期限などをbase64エンコード→署名などを付加→URLにパラメタとして含ませる→送信→そのURLにリクエストが来たらサーバ側でトークンを検証→登録を行う といった流れです。JWTは改ざんを検知できるので認証情報や有効期限は信頼できます。強力な機能であるにも関わらず手軽に使えるのも強みです。 参考記事 PHPのJWTライブラリ