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 auth 미들웨어 설정
예상 결과:
- 프로젝트 루트에 middleware.ts 생성
- @supabase/ssr 에서 createServerClient import
- 환경 변수에서 SUPABASE_URL 및 SUPABASE_ANON_KEY 로 클라이언트 구성
- 인증 보호가 필요한 라우트에 대한 matcher 추가
- 세션 만료 시 토큰 갱신 처리
- 보호된 라우트에서 인증 확인 실패 시 로그인 페이지로 리디렉션
"nextjs-supabase-auth" 사용 중입니다. Server Components 에서 인증을 어떻게 처리하나요?
예상 결과:
- createServerClient 를 사용하여 Supabase 클라이언트 인스턴스화
- getUser() 를 호출하여 현재 세션 유효성 검사
- 사용자 데이터를 props 로 하위 컴포넌트에 전달
- Server Components 에서 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 에서 자동으로 관리하는 쿠키에 토큰 저장
피하기
- 라우트 보호를 위해 미들웨어를 사용하는 대신 Server Components 에서 getSession() 직접 호출
- 적절한 인증 상태 변경 리스너를 구현하지 않고 클라이언트 컴포넌트에서 인증 상태 관리
- @supabase/ssr 이 자동 쿠키 기반 세션 관리를 제공하는데 수동으로 JWT 토큰 저장 또는 처리