티스토리 뷰
반응형
✅ NextAuth.js OAuth Provider 사용법
OAuth Provider란?
NextAuth.js에서 제공하는 인증 방식 중 하나로,
사용자가 Google, GitHub, Twitter 등 기존 계정으로 로그인할 수 있도록 합니다.
NextAuth.js는 대부분의 OAuth 1.0, 1.0A, 2.0, OpenID Connect 기반 로그인 서비스를 지원합니다.
기본 제공 Provider 외에도 커스텀 OAuth 설정도 가능합니다.
🔄 OAuth 기본 플로우 (6단계)
- 사용자가 애플리케이션에서 "로그인"을 클릭
- 애플리케이션이 인증 서버(예: GitHub)에 권한 요청
- 인증 서버가 사용자를 로그인 페이지로 리디렉션
- 사용자가 로그인 후 **인가 코드(code)**를 발급받음
- 앱이 해당 코드를 사용해 Access Token을 요청
- 토큰이 유효하면 사용자 정보와 함께 세션 생성
⚙️ 설정 방법 요약
1. Provider 포털에서 앱 등록
- 예: Google, GitHub, Twitter 등
- Callback URL은 반드시 아래 형식으로 등록:
http://localhost:3000/api/auth/callback/[provider]
2. .env 파일에 키 등록
반응형
TWITTER_ID=당신의_트위터_CLIENT_ID
TWITTER_SECRET=당신의_트위터_CLIENT_SECRET
3. Provider 추가 코드 작성
// pages/api/auth/[...nextauth].ts
import TwitterProvider from "next-auth/providers/twitter"
export default NextAuth({
providers: [
TwitterProvider({
clientId: process.env.TWITTER_ID,
clientSecret: process.env.TWITTER_SECRET,
}),
],
})
4. 로그인 페이지 접근
설정이 완료되면 /api/auth/signin 경로에서
자동으로 Provider 목록이 나타나는 기본 로그인 페이지가 렌더링됩니다.
✨ 고급 옵션 설명
wellKnown
- OIDC 기반 Provider인 경우 자동 설정 가능
- authorization, token, userinfo를 수동 설정할 필요 없음
authorization
- 사용자 로그인 화면 URL
- ex) https://accounts.google.com/o/oauth2/v2/auth
token
- Access Token을 받는 URL
- ex) https://oauth2.googleapis.com/token
userinfo
- 인증된 사용자 정보를 요청하는 URL
🧩 커스텀 Provider도 가능
Google, GitHub 외에도 OAuth 표준만 지원한다면 어떤 서비스든 연동 가능합니다.
Endpoint들을 수동으로 작성하여 완전한 커스터마이징이 가능합니다.
🧪 참고 링크
NextAuth OAuth, OAuth 로그인 설정, Google OAuth Next.js, GitHub OAuth, Twitter 로그인 API, 커스텀 OAuth Provider, 인증 콜백 설정, Next.js OAuth 연동, 소셜 로그인 구현, SEO 최적화 10개
'framework > NextAuth' 카테고리의 다른 글
✅ Credentials Provider – 사용자 정의 로그인 (아이디/비밀번호 등) (0) | 2025.04.23 |
---|---|
✅ Email Provider 설정 (이메일로 로그인) (0) | 2025.04.22 |
✅ NextAuth.js 인증 옵션 설정 (0) | 2025.04.17 |
✅ NextAuth.js 초기화 (Initialization) (0) | 2025.04.16 |
✅ NextAuth.js v4 업그레이드 가이드 (v3 → v4) (1) | 2025.04.15 |
※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- CI/CD
- Docker
- 개발블로그
- SEO 최적화
- gatsbyjs
- 웹개발
- 관리자
- nextJS
- llm
- Prisma
- fastapi
- AI챗봇
- 백엔드개발
- rag
- kotlin
- App Router
- 스마트 컨트랙트
- 프론트엔드
- github
- SEO최적화
- NestJS
- PostgreSQL
- REACT
- Ktor
- AI 자동화
- Next.js
- Webpack
- nodejs
- seo 최적화 10개
- LangChain
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함
반응형