티스토리 뷰
반응형
✅ Credentials Provider – 사용자 정의 로그인 (아이디/비밀번호 등)
Credentials Provider는 사용자가 직접 정의한 방식으로 로그인할 수 있도록 지원합니다.
예: 사용자명 + 비밀번호, 2단계 인증, 지문/보안키(YubiKey 등)
📌 기존에 자체 인증 시스템이 있는 경우에 적합합니다.
🛠 설정 예시 (pages/api/auth/[...nextauth].ts)
import CredentialsProvider from "next-auth/providers/credentials"
export default NextAuth({
providers: [
CredentialsProvider({
name: 'Credentials',
credentials: {
username: { label: "Username", type: "text", placeholder: "jsmith" },
password: { label: "Password", type: "password" },
},
async authorize(credentials, req) {
const res = await fetch("https://your-api.com/auth", {
method: 'POST',
body: JSON.stringify(credentials),
headers: { "Content-Type": "application/json" },
})
const user = await res.json()
if (res.ok && user) return user
return null
}
})
]
})
💡 핵심 포인트 요약
반응형
항목 설명
credentials | 로그인 폼에 표시할 필드 정의 (username, password, etc.) |
authorize() | 실제 로그인 검증 함수. 유효 시 사용자 객체 반환, 실패 시 null |
req | 요청 객체. IP주소 등 추가 정보 활용 가능 |
user | { id, name, email } 등 사용자 정보가 담긴 객체여야 함 |
⚠️ 중요 주의사항
- JWT 기반 세션(strategy: "jwt") 필수
→ Credentials Provider는 DB에 사용자 정보를 저장하지 않기 때문 - 데이터베이스 저장 없이 Stateless 인증 방식으로 동작
- 보안 검증 로직은 반드시 authorize() 내부에서 직접 구현해야 함
📋 주요 옵션
옵션 설명 필수
id | 고유 식별자 (기본: "credentials") | ✅ |
name | 로그인 버튼에 표시할 이름 | ✅ |
type | "credentials"로 고정 | ✅ |
credentials | 로그인 필드 구성 (username, password 등) | ✅ |
authorize() | 로그인 처리 함수 | ✅ |
NextAuth credentials, 아이디 비밀번호 로그인, 사용자 정의 인증, Next.js 로그인 백엔드 연동, authorize 함수 예제, JWT 기반 인증, 보안 로그인 구현, NextAuth 로그인 커스터마이징, 로그인 API 연동, SEO 최적화 10개
'framework > NextAuth' 카테고리의 다른 글
✅ NextAuth.js 이벤트(Events) 설정 (0) | 2025.04.29 |
---|---|
✅ 커스텀 인증 페이지 설정 (Pages 옵션) (0) | 2025.04.24 |
✅ Email Provider 설정 (이메일로 로그인) (0) | 2025.04.22 |
✅ NextAuth.js OAuth Provider 사용법 (0) | 2025.04.18 |
✅ NextAuth.js 인증 옵션 설정 (0) | 2025.04.17 |
※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- nextJS
- 백엔드개발
- github
- seo 최적화 10개
- Docker
- 스마트 컨트랙트
- 개발블로그
- Ktor
- 관리자
- AI 자동화
- Next.js
- fastapi
- CI/CD
- NestJS
- AI챗봇
- rag
- App Router
- PostgreSQL
- nodejs
- LangChain
- Prisma
- SEO최적화
- Webpack
- 웹개발
- REACT
- gatsbyjs
- llm
- kotlin
- 프론트엔드
- SEO 최적화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형