0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ユーザーのログイン

  1. ユーザーはログインフォームにユーザー名とパスワードを入力します。
  2. フロントエンドアプリケーションはこれらの認証情報をバックエンドサーバーに送信します。

サーバーでの認証

  1. バックエンドサーバーは、受け取ったユーザー名とパスワードを検証します。
  2. 認証情報が正しい場合、サーバーはユーザーに対応するJWTを生成します。このJWTには、ユーザーIDやロール、トークンの有効期限などの情報が含まれます。

JWTの発行

  1. サーバーは生成したJWTをクライアントに返します。通常、これはHTTPレスポンスのボディに含まれます。

クライアント側でのJWT保存

  1. クライアントは、受け取ったJWTを保存します。一般的には、ブラウザのローカルストレージやセッションストレージに保存されますが、セキュリティを考慮してクッキーに保存することもあります。

認証されたリクエストの送信

  1. クライアントは、保護されたリソースにアクセスする際に、保存されたJWTをHTTPヘッダーに含めてリクエストを送信します。このヘッダーは通常、以下のように設定されます:
Authorization: Bearer <JWT>

サーバー側でのJWT検証

サーバーは受け取ったリクエストのJWTを検証します。具体的には、以下の手順を行います:

  1. トークンの構文解析

    • トークンをデコードし、ヘッダーとペイロードを抽出します。
  2. 署名の検証

    • ヘッダーのアルゴリズムを使って、トークンの署名が正しいかを確認します。これにより、トークンが改ざんされていないことを確認します。
  3. トークンの有効期限の確認

    • ペイロードのexpクレームを確認し、トークンがまだ有効であることを確認します。
  4. その他のクレームの検証

    • 必要に応じて、その他のクレーム(例えば、ユーザーIDやロール)を検証します。

リクエストの処理

  • トークンが有効である場合、サーバーはリクエストを認証されたユーザーとして処理します。
  • トークンが無効である場合、サーバーは適切なエラーレスポンス(例えば、401 Unauthorized)を返します。

まとめ

この記事が、JWTを使用した認証フローの基本的な理解に役立てば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?