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時間で切れる場合、クライアント(モバイルアプリ)が新しいアクセストークンを要求できるようにします。前もって感謝します。
プロジェクトでも同じ問題がありました。
1)リフレッシュトークンを作成し、ユーザーが(jsonwebtokenで)サインインしたときにそれを返しました。ユーザーと共に更新トークンを保存しました。
2)クライアントが期限切れのトークンでリクエストを送信すると、サーバーは401を返します。
3)トークンを更新する新しいパスを実装しました。更新トークンとユーザーをパラメーターとして受け取り、新しいトークン(jsonwebtoken)を返します。
4)(オプション)誰かがそれを盗んだ場合に備えて、リフレッシュトークンを無効にするメカニズムを実装できます
私はこの投稿で実装をベースにしました、本当に良いスニペット:
それが役に立てば幸い