HTTP-only Cookie内のJWT
JWTに署名してHTTP-only Cookieに保存し、XSSによるトークン窃取を防ぎます。
「HTTP-only Cookie内のJWT」はCoddyKit上の無料Sveltejs Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSveltejs Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Sveltejs Academyコースには全4レッスンが含まれています。
JWTの基本
JSON Web Tokenは、サーバーが署名したクレームを含む自己完結型のトークンです。
JWTを使う理由
JWTを使うと、サーバー側でセッションを保存する必要がありません。トークン自体が本人であることを証明します。
httpOnly Cookieに保存
XSSによる窃取を防ぐため、JWTをhttpOnly Cookieとして設定します。
cookies.set("token", jwt, { httpOnly: true, secure: true, path: "/" });localStorageを避ける
JWTをlocalStorageに保存してはいけません。XSS攻撃によって読み取られ、ユーザーになりすまされる可能性があります。
フックでの検証
handle内でトークンの署名を検証し、クレームをデコードします。
const token = event.cookies.get("token");
try { event.locals.user = verify(token, SECRET); } catch { event.locals.user = null; }秘密鍵で署名する
サーバーだけが知っている強力な秘密鍵でトークンに署名します。決して公開しないでください。
有効期限
有効期限は短く(15~60分)設定し、更新にはリフレッシュトークンを使います。
アルゴリズム
対称鍵による署名にはHS256、非対称鍵(公開鍵と秘密鍵)による署名にはRS256を使います。
リフレッシュトークン
再ログインせずに新しいアクセストークンを取得できるよう、リフレッシュトークンを発行します。
ログアウト戦略
ブラックリストなしではJWTを即時に失効させることはできません。短い有効期限を設定してリスクを軽減します。
ライブラリ
署名と検証には、joseまたはjsonwebtokenのnpmパッケージを使用します。
クイックチェック
JWTはどこに保存してはいけませんか?
まとめ
JWTはhttpOnly Cookieに保存し、フックで検証し、短い有効期限を設定して、更新にはリフレッシュトークンを使用します。
よくある質問
「HTTP-only Cookie内のJWT」レッスンは無料ですか?
はい。「HTTP-only Cookie内のJWT」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Sveltejs Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Sveltejs Academyコースには全4レッスンが含まれています。
「HTTP-only Cookie内のJWT」で何を学びますか?
JWTに署名してHTTP-only Cookieに保存し、XSSによるトークン窃取を防ぎます。 ブラウザで直接実行するハンズオンコードでSveltejs Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Sveltejs Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSveltejs Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「HTTP-only Cookie内のJWT」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSveltejs Academyレッスンでコードを書いて実行できますか?
はい。すべてのSveltejs Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Cookieベースのセッション
- HTTP-only Cookie内のJWT
- handle()フックで保護されたルート
- SvelteKitとLucia AuthによるOAuth