web-dev-qa-db-ja.com

トークンの更新Jsonwebtoken

APIアプリケーションでユーザーを認証するためにNodeJs APIアプリケーションで jsonwebtoken を使用しています。私が設定したフローは次のとおりです。

1)ユーザーはサインアップAPIを介して登録し、次を使用してアクセストークンが生成されます。

var jwt = require('jsonwebtoken');
var token = jwt.sign(user, _conf.authentication.superSecret, {
    expiresIn: 1440 // I intend to keep it short.
});

2)たとえば、トークンの有効期限は24時間です。このトークンは、クライアントモバイルアプリケーションに返され、以降のすべてのAPI要求でヘッダーとして使用されます。

Jwtの更新トークンをどのように回避すればよいか知りたいのですが。現在、トークンを更新するメカニズムはありません。そのため、トークンの有効期限が24時間で切れる場合、クライアント(モバイルアプリ)が新しいアクセストークンを要求できるようにします。前もって感謝します。

17
Sagar Gopale

プロジェクトでも同じ問題がありました。

1)リフレッシュトークンを作成し、ユーザーが(jsonwebtokenで)サインインしたときにそれを返しました。ユーザーと共に更新トークンを保存しました。

2)クライアントが期限切れのトークンでリクエストを送信すると、サーバーは401を返します。

3)トークンを更新する新しいパスを実装しました。更新トークンとユーザーをパラメーターとして受け取り、新しいトークン(jsonwebtoken)を返します。

4)(オプション)誰かがそれを盗んだ場合に備えて、リフレッシュトークンを無効にするメカニズムを実装できます

私はこの投稿で実装をベースにしました、本当に良いスニペット:

JWTのトークンを更新(Node.js実装)

それが役に立てば幸い

28
David Vicente