사용 방법
- 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
- 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
- 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill adding-auth시작 전 확인
- 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
- 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.
Add Authentication (Auth.js)
Use this skill when the user asks to add authentication, login, sign-up, OAuth, or session management.
Steps
- Install dependencies
npm install next-auth@beta- Generate an auth secret
npx auth secretThis adds AUTH_SECRET to .env.local.
- Create the auth config — create
auth.tsin the project root:
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],
});- Add the route handler — create
app/api/auth/[...nextauth]/route.ts:
import { handlers } from "@/auth";
export const { GET, POST } = handlers;- Add environment variables for each provider:
AUTH_SECRET=...
AUTH_GITHUB_ID=...
AUTH_GITHUB_SECRET=...
AUTH_GOOGLE_ID=...
AUTH_GOOGLE_SECRET=...- Add sign-in/sign-out UI — create components that call the
signInandsignOutserver actions, or use<Link href="/api/auth/signin">.
- Protect routes — use the
auth()function in server components or middleware:
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>;
}- Add database adapter (optional) — if the user needs persistent sessions or user records, install a database adapter (e.g.
@auth/drizzle-adapter,@auth/prisma-adapter) and configure it in the auth config.
Notes
- Auth.js v5 works with Next.js App Router and Server Actions natively.
- For Pages Router, use
getServerSessioningetServerSidePropsanduseSessionon the client. - Add
NEXTAUTH_URLfor production deployments. - Store minimal user data in the session; fetch full profiles from the database when needed.




