JWT (JSON Web Tokens)
4264 ワード
1.ログインの実装方法
👎 ユーザーにIDとPasswordを要求し続ける
👎 セッション(サーバメンテナンス)
これは,サーバのメモリ,データベースなどのリソースを利用してユーザ情報を維持する方式である.
オペレーションシーケンス
長所
短所
👍 Tokenメソッド(クライアントメンテナンス)
これは,ユーザがログインした後,サーバから発行されたトークンをブラウザリポジトリに格納して情報を保持する方式である.
長所
2. JWT
JWTはWeb規格(RFC 7519)で、電子署名のURL-SAFE(URLに使用可能な文字のみを含む)のJSONである.
公開鍵暗号方式を使用します.
🔧 JWT構造
JWTは.
を基準に3つの部分に分かれている.
1) Header
{
'alg' : 'HS256',
'typ' : JWT'
}
2) Payload
exp
は、期限切れを示す{
'user-id' : '1',
'exp' : '1539517391'
}
3) Signature
🔧 JWTプロセス
1) Only "Acces Token"
1~3回の操作を行うとログインし、認証を取得します.
4️⃣
クライアントは、APIを要求すると、認証ヘッダに
JWT(Access Token)
をロードして送信する.5️⃣
サーバは、ユーザが送信したトークン署名を
secret key
で復号し、有効なトークンであるか否かを確認する.4~6回の動作を繰り返して承認する.
2) With "Refresh Token"
1番方式で行った場合の問題は
Access Token
を奪われたことです.(なぜuser.idをタグに入れられないのですか?)
トークンの有効期間が長いと、その期間内に情報が盗まれ、それを意識して有効期間が短縮されると、ユーザは複数回ログインするトラブルに直面する.
この問題を解決するために、
Refresh Token
を使用します.Refresh Token
もAccess Token
に類似したJWTである.ログインすると、サーバは
Access Token
とRefresh Token
を同時に送信します.ただし、両者の有効期間設定は異なる.
Refresh Token
は1日、Access Token
は1時間、Access Token
は満期後もRefresh Token
があり、ユーザーはログインする必要がなくAccess Token
を再び取得することができます.したがって、ログインは維持されます.
🔧 タグの保存先
開発者の好みやサービスの性質によって異なります.
Local Storage
Cookie
🔧 JWTのメリットとデメリット
長所
短所
JWTはどこに保存すればいいですか?localStorage vs cookie
JWTはいったい何なのか、なぜ使うのか。
Reference
この問題について(JWT (JSON Web Tokens)), 我々は、より多くの情報をここで見つけました https://velog.io/@kdh10806/JWT-JSON-Web-Tokensテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol