티스토리 뷰
반응형
✅ NextAuth.js 이벤트(Events) 설정
Events는 인증 플로우 중 특정 상황에서 호출되는 비동기 함수입니다.
반환값은 무시되며, 주로 감사 로그(Audit Log), 알림, 추가 작업 처리 등에 사용됩니다.
⚠️ 주의: 이벤트 핸들러가 await을 사용하면 인증 API 흐름이 해당 핸들러가 완료될 때까지 대기합니다.
너무 무거운 작업은 비동기로 별도로 실행하는 것이 좋습니다.
📄 지원되는 이벤트 종류
1. signIn
- 사용자가 로그인 성공 시 호출
- 전달 정보:
- user: 로그인한 사용자 정보
- account: Provider 계정 정보
- profile: OAuth 프로필 정보 (credentials Provider는 없음)
- isNewUser: 첫 로그인 여부 (boolean)
2. signOut
- 사용자가 로그아웃할 때 호출
- 전달 정보:
- token: JWT 세션을 사용하는 경우
- session: DB 세션을 사용하는 경우
3. createUser
- 어댑터(Adapter)를 통해 새로운 사용자가 생성될 때 호출
- 전달 정보:
- user: 생성된 사용자 객체
4. updateUser
- 어댑터를 통해 기존 사용자가 업데이트될 때 호출
(현재는 이메일 주소 검증 시에만 발생) - 전달 정보:
- user: 업데이트된 사용자 객체
5. linkAccount
- 사용자가 새로운 외부 계정(OAuth Provider 등)을 연결할 때 호출
- 전달 정보:
- user: 기존 사용자 객체
- account: 새로 연결된 계정 정보
- profile: OAuth Provider에서 받은 프로필 정보
6. session
- 현재 세션을 요청할 때 호출
- 전달 정보:
- token: JWT 사용 시
- session: DB 기반 세션 사용 시
🧩 사용 예시
반응형
export default NextAuth({
events: {
async signIn({ user, account, profile, isNewUser }) {
console.log('새로운 로그인:', user.email)
},
async signOut({ token, session }) {
console.log('로그아웃 완료:', token?.email || session?.user?.email)
},
async createUser({ user }) {
console.log('신규 사용자 등록:', user.email)
},
async linkAccount({ user, account, profile }) {
console.log('외부 계정 연결:', account.provider)
}
}
})
🛡️ 주의사항
- 이벤트 핸들러는 API 인증 플로우와 동일한 서버 자원 내에서 실행됩니다.
- 외부 HTTP 요청(예: Slack 알림 전송) 등을 await 없이 비동기 처리하는 것이 서버 응답 속도에 좋습니다.
NextAuth 이벤트, 로그인 성공 이벤트, 로그아웃 이벤트 처리, 사용자 생성 후 작업, OAuth 계정 연결 알림, 세션 이벤트 처리, 감사 로그 이벤트, 인증 플로우 후크, 인증 이벤트 핸들링, SEO 최적화 10개
'framework > NextAuth' 카테고리의 다른 글
✅ Next.js에서 NextAuth.js 통합 설정 가이드 요약 (0) | 2025.04.30 |
---|---|
✅ 커스텀 인증 페이지 설정 (Pages 옵션) (0) | 2025.04.24 |
✅ Credentials Provider – 사용자 정의 로그인 (아이디/비밀번호 등) (0) | 2025.04.23 |
✅ Email Provider 설정 (이메일로 로그인) (0) | 2025.04.22 |
✅ NextAuth.js OAuth Provider 사용법 (0) | 2025.04.18 |
※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- fastapi
- 관리자
- 웹개발
- Webpack
- kotlin
- rag
- Prisma
- 백엔드개발
- 스마트 컨트랙트
- AI 자동화
- github
- nextJS
- SEO최적화
- Docker
- Ktor
- REACT
- PostgreSQL
- App Router
- gatsbyjs
- seo 최적화 10개
- llm
- SEO 최적화
- NestJS
- 프론트엔드
- Next.js
- nodejs
- CI/CD
- 개발블로그
- AI챗봇
- 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 | 31 |
글 보관함
반응형