Flask Academy · レッスン

セッションとステートレスなトークン

CookieよりJWTがAPIに適している場面を学びます

レッスン 1/413 ステップ

「セッションとステートレスなトークン」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。

ユーザーを記憶する2つの方法

HTTPはリクエストの間でユーザーを記憶しません。ログイン状態を維持するには、サーバーにセッションを保存するか、クライアントに署名付きトークンを渡します。

セッションの仕組み

セッションを使うと、サーバーがログイン状態を保持し、ブラウザーにはセッションIDだけを格納した小さなCookieを渡します。リクエストごとに、サーバーがそのIDを検索します。🍪

セッションのコスト

サーバーが状態を保存するため、アクティブなユーザーをすべて記憶しておく必要があります。このサーバー側の状態は、複数のマシンで共有する際に負荷が大きく、扱いも難しくなります。

トークンによる仕組みの変化

トークン自体にユーザー情報を含め、サーバーが署名します。サーバーは何も保存する必要がなく、各リクエストで署名を検証するだけです。

ステートレスの意味

ステートレスとは、サーバーがクライアントの状態を保持しないことです。ユーザーを信頼するために必要な情報は、各呼び出しでトークンに含めて送信されます。

JWTを知る

JWT(JSON Web Token)は、標準的なステートレストークンです。コンパクトな署名付き文字列で、キーを持つサーバーならすぐに検証できます。

JWTの3つの部分

JWTはドットで区切られた3つの部分、つまりヘッダー、ペイロード、署名で構成されます。ヘッダーには、署名に使ったアルゴリズムが記載されます。

header.payload.signature

クレームはペイロードに入る

中央の部分にはクレームが含まれます。ユーザーIDや有効期限などの小さな情報です。暗号化ではなくエンコードされるだけなので、秘密情報は決して入れないでください。

{ "sub": "42", "exp": 1699999999 }

署名が信頼性を作る

署名は、ヘッダー、ペイロード、そしてサーバーだけが知る秘密情報から作られます。1バイトでも変更すると、検証に失敗します。

トークンが有利な場合

トークンはAPIや、多数のサーバーにまたがってスケールするモバイルクライアントで特に有効です。呼び出し元の検証に共有セッションストアが必要ないためです。

セッションが適している場合

従来型のサーバーサイドレンダリングWebサイトでは、セッションの方が簡単で、無効化もしやすくなります。適切な選択は流行ではなく、アプリによって決まります。

確認してみましょう

トークン方式がステートレスになる理由を考えてみてください。

まとめ

セッションはサーバーに状態を保存しますが、JWTは署名付きの状態をクライアントに渡します。トークンはステートレスであり、スケーラブルなAPIに適しています。🚀

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「セッションとステートレスなトークン」レッスンは無料ですか?

はい。「セッションとステートレスなトークン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。

「セッションとステートレスなトークン」で何を学びますか?

CookieよりJWTがAPIに適している場面を学びます ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Flask Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「セッションとステートレスなトークン」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このFlask Academyレッスンでコードを書いて実行できますか?

はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. セッションとステートレスなトークン
  2. ログイン時にアクセストークンを発行する
  3. jwt_requiredでエンドポイントを保護する
  4. リフレッシュトークンと有効期限
← Flask Academyに戻る