nextjs-supabase-auth
Next.js App RouterでSupabase Authを実装する
Next.jsでの認証構築にはサーバーとクライアントの境界を理解する必要があります。このスキルでは、App Routerアーキテクチャで安全なSupabase Auth統合のための実証済みのパターンを提供します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「nextjs-supabase-auth」を使用しています。 Next.js App Router用のSupabase認証ミドルウェアを設定する
期待される結果:
- プロジェクトルートにmiddleware.tsを作成
- @supabase/ssrからcreateServerClientをインポート
- envからSUPABASE_URLとSUPABASE_ANON_KEYでクライアントを設定
- 認証保護が必要なルートのマッチャーを追加
- セッション期限切れ時にトークン更新を処理
- 保護されたルートで認証チェックが失敗したときにログインページにリダイレクト
「nextjs-supabase-auth」を使用しています。 サーバーコンポーネントで認証を処理方法は?
期待される結果:
- createServerClientを使用してSupabaseクライアントをインスタンス化
- getUser()を呼び出して現在のセッションを検証
- ユーザーデータを子コンポーネントにpropsとして渡す
- サーバーコンポーネントで直接getSession()を呼び出すのを避ける
- 保護されたルートのセッション検証はミドルウェアに任せる
セキュリティ監査
安全Static analysis flagged markdown backticks as shell commands (false positive). Line 57 uses backticks for inline code formatting in documentation, not command execution. No actual external commands, cryptographic operations, or dangerous patterns exist. Skill provides documentation and patterns only - no executable code with security risks.
品質スコア
作れるもの
SaaSアプリケーションを構築するフルスタック開発者
Supabaseをバックエンドとして使用するNext.js SaaS製品のために、メールとOAuthプロバイダーを使用した安全なユーザー認証を実装します。
Pages RouterからApp Routerへの移行チーム
既存のSupabase認証実装をNext.js App Routerサーバーコンポーネントとミドルウェアアーキテクチャで動作するようにリファクタリングします。
既存アプリに認証を追加する開発者
Supabaseバックエンドを持つ既存のNext.jsアプリケーションに認証を統合し、最初からセキュリティベストプラクティスに従います。
これらのプロンプトを試す
Next.js App Routerプロジェクト用のSupabaseクライアント設定を手伝ってください。@supabase/ssrを使用して、サーバーコンポーネント用クライアントコンポーネント用、ミドルウェア用の別々のクライアントが必要です。
/dashboard配下のルートを保護し、認証されていないユーザーを/loginにリダイレクトするミドルウェアを作成してください。期限切れトークンのセッション更新ロジックを含めます。
承認コードをSupabaseセッションと交換し、認証成功後にユーザーを適切なページにリダイレクトするOAuthコールバックルートハンドラーを構築します。
ログイン、サインアップ、ログアウトのためにServer Actionsを使用した完全な認証フローを実装してください。適切なエラー処理フォーム検証を含み、資格情報をクライアントに公開せずに安全なトークン管理を行います。
ベストプラクティス
- Next.js App Routerのサーバー/クライアント境界のために特別に設計された@supabase/ssrパッケージを使用する
- レンダリング前にルートを保護し、セッション更新を透過的に管理するためにミドルウェアで認証を処理する
- トークンストレージを手動で処理する代わりに、@supabase/ssrが自動的に管理するCookieにトークンを保存する
回避
- ルート保護のためにサーバーコンポーネントで直接getSession()を呼び出す(代わりにミドルウェアを使用)
- 適切な認証状態変更リスナーを実装せずにクライアントコンポーネントで認証状態を管理する
- @supabase/ssrが自動Cookieベースのセッション管理を提供しているときにJWTトークンを手動で保存または処理する