Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LIFF認証で悩まないために 〜Auth.js × Supabase構成のリアル〜

LIFF認証で悩まないために 〜Auth.js × Supabase構成のリアル〜

LINE LIFF × App Router × Supabase 認証の課題と解決法を解説!

このスライドでは、App RouterのServer ComponentとLINE LIFFの相性問題や、LIFF × Supabaseの認証連携の難しさにフォーカスし、その解決策としてLIFFのIDトークンをAuth.jsに詰め替える実装方法を詳しく紹介しています。

Firebaseへのトークン詰め替え手法は知られていても、Auth.jsへの詰め替え手法はまだサンプルが出回っていません。本資料ではその空白を埋めるべく、実装ステップや注意点をステップバイステップで解説しています。

さらに、LINE LIFF認証の基礎から丁寧に解説しているため、これからLIFFアプリを作りたいと考えている方にもおすすめの内容です。

Avatar for Takeshi1998

Takeshi1998

April 03, 2025
Tweet

Other Decks in Technology

Transcript

  1. ジムトモの技術スタック カテゴリ 技術 フレームワーク Next.js(App Router) 認証 LINE LIFF,Auth.js UI

    ライブラリ shadcn/ui データベース・ORM Supabase,Prisma インフラ Vercel 5
  2. LINE Server ジムトモ Server ジムトモ (LINE) LINE Server ジムトモ Server

    ジムトモ (LINE) これ以降が疑問🤔 liff.init() ID token POST /oauth2/v2.1/verify 200 OK 12
  3. 疑問・要望 トークンのライフサイクルを自分で設定したい Server Component でユーザー情報を取得したい リクエスト毎に LINE の検証エンドポイント叩く? 認証状態を取得する 便利な

    hooks / 関数 を使いたい useSession() , getServerSession() など → そもそも普段、Twitter やGoogle 認証を使ってて、こんなに悩まさ れたことなくね?(LIFF も認証フレームワークに統合したい) 13
  4. 認証フレームワークの選定 認証基盤 LIFF 独自トークン作成 Supabase Auth Firebase Auth Custom Token

    Auth.js Credential Provider → Auth.js は薄い&Server Component とも相性よいので採用 16
  5. LINE Server ジムトモ Server + Auth.js ジムトモ (LINE) LINE Server

    ジムトモ Server + Auth.js ジムトモ (LINE) LIFF ID トークンを送信 ID トークンをverify 200 OK 🔑 独⾃トークンを発⾏ (Credential Provider) 独⾃トークンを返却 独⾃トークン付きリクエスト 独⾃トークンを検証 200 OK ( 認証成功) 17
  6. LINE の検証 API を 2 回目以降のリクエストでは叩かなくてよい トークンのライフサイクルを自分で設定できる 認証状態を取得する 便利な hooks

    / 関数 を使える useSession() 、 getServerSession() など Server Component でユーザー情報を取得できる 18