5

トークン処理用のノードで JWT (jsonwebtoken) パッケージを使用しています。

トークンを「ログアウト」/取り消し/無効にする方法はありますか?

4

3 に答える 3

1

@Massimilianoが言ったように、現在のユーザーをログアウトしたいだけの場合は、それを追跡するために使用していたクライアント側のストア(Cookieなど)からトークンを削除することで実装されることがよくあります。

セキュリティ上の理由で取り消しが必要な場合は、そもそも JWT を使用せず、代わりに通常の不透明な Bearer トークンを使用する理由について説明している記事を参照してください (データベースに格納することで実装され、多くの場合、安全なランダムトークンを使用します)。文字列を ID として)。

https://www.dinochiesa.net/?p=1388

基本的に、データベース ルックアップを追加せずにそれらを取り消すことはできません (そもそも JWT を使用する主な理由の 1 つを無効にします)。また、ユーザー インターフェイスを介して取り消す必要がある場合は、または類似の方法でトークンをクエリできるようにする必要があるuser_idためgroup_id、トークンを取得するのではなく、その情報でトークンのインデックスを作成できるようにする必要があります。 JWT クレームでは不透明にします。

于 2016-03-14T22:10:08.950 に答える
0

jwt 認証では、データベースにトークンを挿入する必要はありません。トークンを取り消し/ログアウト/無効化したい場合は、トークン (Cookie またはヘッダー) を保存することを決めたブラウザーでローカルに削除するだけです。次のどのルート (認証によって保護されている) の呼び出しでも、優れたプログラマーがいる場合、サーバーは再度認証を要求する必要があります。

これが役に立てば幸いです、チャオ。

于 2015-10-28T23:58:41.423 に答える