小学生でもわかる AI図鑑
速報
  1. ホーム
  2. 小学生でもわかるClerk
  3. 第7話

Clerk 第7話

【小学生でもわかる】ログインした人のデータだけを取り出す方法!ClerkとSupabaseのつなぎ方

ログインの付いたアプリはできたのに、本のメモのようなデータを置こうとして、「誰のメモかをどう分けるのか」で手が止まった人へ。ネットには古いつなぎ方や、データを置く Supabase 自身のログイン向けの書き方が混ざっていて、写すとエラーで止まりがちです。

  • 無料(Clerk の Hobby と Supabase の Free のまま。Supabase では Third-Party MAU として数えられ、Free は5万人まで。Webhook でデータを写す機能も料金ページでは Hobby に含まれる)
Xで記事を読む シェア
データとつなぐのカバー

どんな話?

Clerk でログインした人の番号を Supabase の表に書き、本人の行だけが返るようにする回です。つなぎ方は Third-Party Auth で、JWT テンプレートは古い。列は text、条件は auth.jwt()->>'sub'。扉は GRANT とポリシーの2枚で、Clerk の説明書の SQL に無い GRANT を自分で足します。確かめは2人で交互に。成果物は、自分の本のメモだけが返ってくる表です。

この記事でわかること

  • Clerk が渡すのは、合言葉(セッショントークン)と user_ で始まるユーザー ID まで。Clerk はデータベースではないので、本のメモは Supabase に置く
  • つなぎ方は Third-Party Auth。JWT テンプレート(getToken({ template: 'supabase' }))は、Clerk の説明書が2025年4月1日から非推奨とした古いやり方
  • 表の user_id は text の列で、初めの値は auth.jwt()->>'sub'。Supabase 自身のログインのための auth.uid() は持ってこない
  • Supabase は新しい表を自動で窓口に出さなくなった(新しいプロジェクトは2026年5月30日から、すでにあるプロジェクトは10月30日の予定)。Clerk の説明書の SQL に無い GRANT を足す。42501 が出たら、まず GRANT を疑う
  • Supabase では Third-Party MAU として数えられ、Free は5万人まで。Clerk の無料の5万 MRU とは数え方が別
  • Webhook は要るときだけ。すぐ届くとも必ず届くとも限らず、順番が入れかわったり2回届いたりもするので、insert ではなく upsert

やることチェックリスト

0/6

記事を読みながら、できたものにチェックを付けていけます。チェックはこの端末に残ります。

くわしい手順と画面の図は、Xの記事にあります。

こんな人に

  • ログインの付いたアプリはできたのに、データを「誰のメモか」で分ける所で手が止まった人
  • ネットの古いつなぎ方や Supabase 自身のログイン向けの書き方を写して、エラーで止まった人
  • Clerk でログインした人の行だけが返る表を、古い書き方と新しい決まりを見分けながら作りたい人

この話のTIPS

  • 注意Clerk の metadata(ユーザーに付けるメモ欄)のうち、ブラウザから書き換えられる unsafe metadata は、役割やポリシーの判定に使わないこと。
  • コツ42501 が出たら、まず GRANT を疑ってください。
すべてのTIPS