2016-05-26 12 views
1

JWTを使用してnode.jsバックエンドアプリケーションを作成していますか。私の場合、要件は単純です。認証トークンには有効期限がありません。しかし、私はJWTを無効にする際にユーザーがパスワードを変更したときに問題に直面しています。有効期限のないJWTトークンを無効にする方法

ユーザーがパスワードを変更すると、新しいJWTトークンを作成して古いトークンを削除しますが、ユーザーは以前のJWTトークン(他のログイン済みのデバイス)を使用してアプリケーションにアクセスできます。

誰も私にこのシナリオを回避する方法を教えてもらえますか?

答えて

2

私にはおなじみの質問のようですが、私はすでに同様の質問Best practices to Invalidate a JWT Tokenに答えています。

次のようにウルの問題を解決するための手順ので、

ユーザのログイン、無期限の時間で彼のユーザデータベースにログイントークンを作成します。したがって

JWTを無効にしながら、以下の手順に従って、

  • は、ユーザ情報を取得し、トークンが彼のユーザーデータベースにあるかどうか確認してください。もし許せば。
  • ユーザーがログアウトすると、ユーザーのデータベースからこのトークンのみを削除します。
  • ユーザーがパスワードを変更したら、ユーザーデータベースからすべてのトークンを削除し、再度ログインするように求めます。

したがって、基本的にユーザーのデータベースにトークンを格納し、無効にしながらトークンを使用する必要があります。シンプル:)

+0

これは私が探していたものです。以前の回答リンクに続いています。 JWTの無効化に本当に役立つことがわかった。本当にありがとうございました。 –

0

私は知っているところからJWTトークンを無効にすることはできません。私はいつも、常に1週間の最大有効期間を持つ有効期限が短いことを提案します。あなたのアプリケーションが最初に実装してトークントークンを更新したり、トークンがほとんどのJWTライブラリで有効かどうかを確認するための規定があります。あなたのトークンを期限切れにしておきたいと強く希望するなら、ミドルウェアがチェックする種類のブラックリストを残しておくことをお勧めします。前に尋ねられた同様の質問があったhere。これが欲しいと思っています

関連する問題