2016-07-18 1 views
1

「テレグラム」のようなアプリケーションには、現在のユーザーのセッションを表示して終了できる「アクティブなセッション」機能があります。セッションやクッキーを使ってユーザーセッションを保存するときにも同様の機能を持たせるのは問題ではありませんが、jwtを使ってそれを作る方法は?jwt authを使用しているときにユーザーセッションを取得できますか?

サーバはjwtに関する情報を保存しないので、アクティブなセッションのリストを取得することさえできません。ユーザーのログイン時にデータベースに追加情報を保存することを考えていたので、デバイス名、タイプなどのデータを取得し、アクセストークンも保存することができます。ユーザーが特定のセッションを強制終了したい場合は、必要なアクセストークンを無効にします。

この機能を使用する正しい方法は何ですか?

答えて

2

JWTは自己完結型であり、サーバーセッションは必要ありませんが、場合によっては発行済みトークンとアクティブトークンに関するサーバーに関する情報を維持するのに便利です。

たとえば、ユーザーの資格情報、アクセス許可、または単にログアウトした後、取り消されたトークンのブラックリストを設定することができます(データを削除するクライアントを完全に信頼することはできません)。完全なトークンを格納する必要はなく、一意の識別子を割り当てるだけです。また、有効期限までトークンのトレースを保持するだけです。

ユースケースでは、ユーザーの操作中にトークンを更新できるため、ユーザーに関するすべてのデータを新しいトークンに添付する必要があります。あなたのトークンの有効期限が長い場合、永続性が必要になります

伝統的なアプローチと混同する可能性があるので、私は 'セッション'と呼ぶことはありません。

関連する問題