2016-04-09 6 views
4

私は認証が必要なアプリケーションを構築しています。ユーザーがリモートからログアウトできるようにしたいと思うかもしれないと心配しています。 JSON Webトークンを使用してブラックリストに登録する方法がありますか?私は彼らの利益が無国籍であることを理解していますが、遠隔地のログアウトがあればうれしいでしょう。ユーザーが別のマシンからアカウントからサインアウトしたい場合、JSON Webトークン(JWT)を拒否またはブラックリストに登録できますか?

EDIT:express-jwtモジュールを使用するExpress.jsには、method to revoke tokensがあります。また、モジュールexpress-jwt-blacklistがあります。私はまだこれらの戦略がどのように機能しているのか理解しておらず、現時点でベストプラクティスが何であるかを知りたいと思います。

答えて

3

Blacklisting JSON Web Token API Keysに関する素晴らしい記事があります。ここではJWT APIキーをブラックリストに登録してもはや有効でないようにするための実際の例を示しています。あなたはそれを読むべきです。ブラックリストJWTsのサポートを提供し、問題

フレーミング

は、以下の質問を提起:

  1. どうJWTsが個々に識別されますか?
  2. 誰がJWTを取り消すことができますか?
  3. トークンはどのように取り消されますか?
  4. オーバーヘッドの追加を避けるにはどうすればよいですか?

このブログの投稿は、私たちのAPI v2でこの機能を実装した の経験を活用して、これまでの質問に答えることを目指しています。

記事は各ポイントを破壊し、それを達成するためにどのようにいくつかのコード例を示し、との結論:

前述の内容のほとんどはちょうどJWTのAPIではない、 一般的にブラックリストJWTsに適用されますキー。

うまくいけば、このブログ記事は、この問題にどのように対処するかについてのいくつかの有用なアイデアを提供してくれました。

トークンがセッションIDと同様に使用され、Cookieに格納されたマルチサインインを取り消すために同様の方法を適用しました。 GitHubのプロファイルセクションのようにモデル化しました。ここで、ユーザーは他のアクティブなセッションをすべて表示し、必要なときにそれらを取り消すことができます(リモートサインアウト)。

ベストプラクティスに関する限り、私はトピックがむしろ意見に基づくと信じています。しかし、私はAuth0がこのトップス地域の良い実践の源泉であると感じています。

UPDATE:

見つかりNPM

でこの express-jwt plugin for token blacklisting
関連する問題