CookieやJWTに再入門している
#日記 (本分内にハッシュタグを入れておくと note のタグが自動で付与されることに今更気付いた。ちょっと煩わしかったのでこれは便利)
来週開催するイベントの創作アプリをHono × Bunで作っているのだが、認証などはないもののユーザーを一意に認識できるようにしておきたい欲 (課題ではなく欲だ) があり、CookieとHTTPヘッダー、アクセストークンおよびリフレッシュトークンとしてのJWTなどに再入門している
HTTPリクエストのヘッダーとCookieがどのように設定され、送信されるか。また、HTTPSによってなぜCookieは暗号化されるか。Cookie のセキュリティ周りで Secure・httpOnly・sameSiteなどなど。
❯ curl -I http://localhost:5173/lobbies/7
HTTP/1.1 200 OK
set-cookie: access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJlbmdpbmVlci1iYXIiLCJzdWIiOiIxMDZiNjhjYS01YzY0LTQ4ZmMtOGJiMS1kZTlkZjA4MWU0YTYiLCJhdWQiOiJodHRwczovL2VuZ2luZWVyLWJhci5jb20iLCJleHAiOjE3MTEwMzMzMDksIm5iZiI6MTcxMDQyODUwOSwiaWF0IjoxNzEwNDI4NTA5LCJqdGkiOiI3OTNlNWVlNS03YTA1LTQ4MzItYjUwOS1jNTcxNzFhMTdiN2EifQ.0dl7-A_vDocbSUnexjTYbypxIX0M_PSwBeGrUisrTnE; Max-Age=604800; Path=/; HttpOnly; SameSite=Strict
Access-Control-Allow-Origin: *
Content-Type: text/html; charset=UTF-8
Cross-Origin-Resource-Policy: same-origin
Cross-Origin-Opener-Policy: same-origin
Referrer-Policy: no-referrer
X-Content-Type-Options: nosniff
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 0
Date: Thu, 14 Mar 2024 15:01:48 GMT
Connection: keep-alive
origin-agent-cluster: ?1
x-download-options: noopen
x-permitted-cross-domain-policies: none
Date: Thu, 14 Mar 2024 15:01:48 GMT
Content-Length: 0
「なんとなく概要は知っている」という状況から、より手応えのようなものを感じる「触れるもの」へ変わった感じだろうか。Hono の実装が分かりやすかったことやそのデバッグを通して掴みつつありそうだ。あくまで初歩的なところということは理解しているつもりだが。
JWTのクレームの仕様なども眺めた。いろいろな組織が Change Controller として登録されており、言葉にならない面白さを感じた。
それらを組み合わせて認証するための仕組みとしてのアクセストークン。また、認証を安全にしつつもユーザーの体験に対する支障を抑えるための仕組みとしてのリフレッシュトークン。それらをどのように設定し、どのように運用するのかなど。
Claude3 Opus の力を十分に借りつつ、あれこれ触っている。
来週のイベントに間に合うかなー (遠い目)
この記事が気に入ったらサポートをしてみませんか?