2017-09-06 5 views
0

私はJWTのドキュメントを読むとき、リクエストヘッダで暗号化されていて実際にはJWTがステートレスであるため、セッションを使用してユーザデータを保存する必要がないことを理解しました。この場合JWTトークンを無効にしたいとき、JWTとセッションクッキーの違いは何ですか?

しかし、私は私のユーザーが無効の場合は、JWTのトークンを削除したい。..

、私のJWKミドルウェアでは、トークンを検証した後、私はかどうかをチェックするための私のMongoDBでクエリを取得する必要がありますそのユーザーはアクティブまたは非アクティブです。

これはステートレスではありません。一方、mongoDBはセッションを保存するための良いデータベースではないため、mongoDBの大きなオーバーロードです! Redisが必要です。Redisを使用したいのですが、セッションとCookieとJWTの違いは何ですか?

答えて

0

前述したように、JWTトークンは任意のユーザー関連情報を運ぶことができます。サーバは以前の要求中にこの特定のクライアントの状態が何であったかを記憶していないので、通信は状態を保持したままである。 JWTトークンの形式で行うすべての要求をコンテキストに渡す必要があります。

コンテキストが小さい限り、それをすべてトークンに入れても問題ありません。多くのコンテキストが存在する場合、各要求とともにそれを渡すことは、もはや最適ではない可能性があります。これは、バックエンドに状態を保存することに切り替える必要があるときです。

これまでのところ、JWTとCookieは、リクエスト間のコンテキストを運ぶのと同様のメカニズムです。各要求内で送信されるデータのサイズを縮小するためにバックエンドセッションストアを使用する必要があるかどうかを判断する必要がある場合は、どちらもサイズの境界になります。

+0

ありがとうございます。この質問を読むことができますか?https://stackoverflow.com/questions/46069698/refresh-token-bug-in-jwt-method –

関連する問題