Expressjs、nodejs、およびangularjsアプリでjsonwebtokenとexpress-jwtを使用して、ユーザー認証用のjson Webトークンを実装しようとしています。さまざまな記事やチュートリアルを読みましたが、今は少し混乱しています。
JWT について最初に理解したのは、JWT がピリオドで区切られた 3 つの部分で構成されていることです。
- ヘッダー: jwt とアルゴリズムについて説明します。
- ペイロード: 情報が含まれています: 発行者、オーディエンス、有効期限
- 署名: ヘッダーとペイロードに基づく署名
したがって、すべてのリクエストはトークンを使用して行われ、サーバーで検証されます。この記事によると、発行者はリクエストを行う人です。ユーザー認証の場合、ユーザーは発行者です。現在、express-jwtミドルウェアを使用して、リクエスト ヘッダーのトークンを検証し、デコードされたトークンを req.user に添付します。
app.use(expressJwt({ secret: jwtSecret }).unless({ path: [ '/login' ]}));
ペイロードの長さはどのくらいですか? Facebookの「ログインを維持する」のように、ユーザーがログアウトしない限り、ブラウザーを閉じた後でもセッションが持続するように、クライアント側でトークンを保存する方法と場所は? トークンの有効期限が切れた場合にユーザーに再度ログインを求めるプロンプトが表示されないようにするため、ユーザーがログアウトしない限り、トークンを更新する必要があります。