ホームページ  >  に質問  >  本文

Laravel API で tymon/jwt-auth トークンを更新する

<p>Laravel API があり、<code>tymon/jwt-auth</code> をインストールしました。ユーザーにログインしてトークンを取得するには、次のコードを使用します。 </p> <pre class="brush:php;toolbar:false;">if (! $token = auth()->attempt($request->only('email', 'password'), true)) { throw ValidationException::withMessages([ '電子メール' => '無効な認証情報', ]); } return new TokenResource([ 'トークン' => $トークン、 'ユーザー' => $ユーザー、 ]); </pre> <p>古いトークンを無効にして新しいトークンを発行する <code>リフレッシュ トークン</code> のエンドポイントもあります。ドキュメントに従って、次のコードを追加しました。 </p> <pre class="brush:php;toolbar:false;">return new TokenResource([ 'トークン' => auth()->refresh()、 'ユーザー' => auth()->user(), ]); </pre> <p>問題は、現在のトークンでエンドポイントにアクセスすると、新しいトークンが返されるが、古いトークンはまだ有効であることです。 </p> <p>リフレッシュトークンを無効にする方法はありますか? </p>
P粉798010441P粉798010441456日前569

全員に返信(2)返信します

  • P粉557957970

    P粉5579579702023-08-15 11:18:45

    これはデフォルトの動作です。したがって、望ましい結果を達成するために、それらをブラックリストに登録できます。ユーザーがトークンを使用しようとすると、それがブラックリストに含まれているかどうかを確認できます。その場合は拒否しても構いません。

    これを実現するには、トークンがブラックリストに含まれているかどうかを確認するミドルウェアを作成し、そのミドルウェアをトークンの検証が必要なルートに適用します。

    ミドルウェア:

    リーリー

    ただし、これはシステムが実際に必要とする場合にのみ実行してください。

    返事
    0
  • P粉768045522

    P粉7680455222023-08-15 00:53:41

    トークンの作成後に手動でトークンを期限切れにすることはできません。これがトークンの仕組みです。トークンを作成した場合、有効期限が切れるまで有効ですが、トークンのブラックリストを作成し、トークンを更新するたびに最初のトークンをブラックリストに追加し、トークンの有効期間を短縮することも検討できます (十分に短い場合)。自動有効期限切れメカニズムに依存できます。

    返事
    0
  • キャンセル返事