Open4
@supabase/ssrについて

@supabase/ssrとは
サーバーサイドでユーザー認証を可能にしたもの。
これまでは、ユーザーセッションはlocal storage
で管理していたが、Cookie
で管理できるようになる。
@supabase/ssr
はbeta版なので、破壊的変更が加えられる可能性あり。
Cookieとlocal storageの違い
Cookie
はhttpで送受信するから、サーバー側でユーザー認証が可能になる。
local storage
だとブラウザ側でしか閲覧できないから、サーバー側でユーザー認証できない。
また、local starage
ではJava Scriptで操作できてしまうから、XSSの脆弱性があるらしい。

@supabase/ssrを使用してみる
公式ドキュメント通りに進めたらできた。

middlewareについて
他のユーザーが作成したCookie
がサーバに渡される可能性がある。
そのため、Authトークンをリフレッシュする必要がある。(Authトークンは調べる必要あり)
サーバーコンポーネントではCookie
を書き込みできないみたいなので、middleware
で書き換える。
Authトークンのリフレッシュ
getUser()
でリフレッシュできるらしい。
具体的にはリクエスト毎にsupabaseのAuthサーバーにAuthトークンを要求しているらしい。

supabase.auth().getSession()とは
local storage
のデータを取得するものらしい。
ドキュメントにも信頼するデーターが欲しい場合、getUser()
の使用を促している。
使い道が不明。