adding-auth について
adding-authは、Next.jsプロジェクトにAuth.js認証を追加する開発者向けのスキルです。設定、ルート、ログイン画面、ルート保護を扱い、任意のデータベースアダプター設定も案内します。
主な機能
- 01Auth.jsのインストールと設定
- 02GitHubとGoogleプロバイダーの設定
- 03認証ルートハンドラーの追加
- 04ログイン・ログアウト画面の作成
- 05セッションによるルート保護
- 06任意のデータベースアダプター設定
活用シーン
- 01Next.jsアプリへのログイン追加
- 02GitHubまたはGoogle OAuthの設定
- 03セッション確認とルートアクセス制限
- 04セッションやユーザー記録の永続化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ revitalb-port/ skills-registry-demo --skill adding-authインストール後、Claude Code で/adding-authを入力して読み込まれたか確認します。
詳細
認証を追加する(Auth.js)
ユーザーから認証、ログイン、サインアップ、OAuth、またはセッション管理の追加を依頼された場合に、このスキルを使用します。
手順
-
依存関係をインストールします
npm install next-auth@beta -
認証シークレットを生成します
npx auth secretこれにより、
.env.localにAUTH_SECRETが追加されます。 -
認証設定を作成します — プロジェクトのルートに
auth.tsを作成します。import NextAuth from "next-auth"; import GitHub from "next-auth/providers/github"; import Google from "next-auth/providers/google"; export const { handlers, signIn, signOut, auth } = NextAuth({ providers: [GitHub, Google], }); -
ルートハンドラーを追加します —
app/api/auth/[...nextauth]/route.tsを作成します。import { handlers } from "@/auth"; export const { GET, POST } = handlers; -
各プロバイダーの環境変数を追加します
AUTH_SECRET=... AUTH_GITHUB_ID=... AUTH_GITHUB_SECRET=... AUTH_GOOGLE_ID=... AUTH_GOOGLE_SECRET=... -
サインイン/サインアウトの UI を追加します —
signInとsignOutのサーバーアクションを呼び出すコンポーネントを作成するか、<Link href="/api/auth/signin">を使用します。 -
ルートを保護します — サーバーコンポーネントまたはミドルウェアで
auth()関数を使用します。import { auth } from "@/auth"; export default async function ProtectedPage() { const session = await auth(); if (!session) redirect("/api/auth/signin"); return <div>Welcome {session.user?.name}</div>; } -
データベースアダプターを追加します(任意) — 永続的なセッションまたはユーザーレコードが必要な場合は、データベースアダプター(例:
@auth/drizzle-adapter、@auth/prisma-adapter)をインストールし、認証設定で構成します。
補足
- Auth.js v5 は、Next.js App Router と Server Actions にネイティブ対応しています。
- Pages Router では、
getServerSidePropsでgetServerSessionを使用し、クライアント側でuseSessionを使用します。 - 本番環境へのデプロイでは
NEXTAUTH_URLを追加します。 - セッションには最小限のユーザーデータを保存し、必要に応じてデータベースから完全なプロフィールを取得します。
コメント
Markdown 対応