NextAuth
import NextAuth from "next-auth"
export default NextAuth({
});
- Next.js에서 각종 인증 관련 절차를 관리하는 함수
NextAuth 함수의 옵션
- providers: 다양한 OAuth 공급자를 설정합니다. 예를 들어 Google, Facebook, GitHub 등과 같은 서비스를 사용하여 로그인할 수 있도록 합니다.
- adapter: 데이터베이스 어댑터를 설정합니다. 이를 통해 사용자, 세션, 계정 데이터를 데이터베이스에 저장할 수 있습니다.
- callbacks: 로그인, 로그아웃, 세션 생성 등의 다양한 이벤트에 대한 콜백 함수를 정의할 수 있습니다. 예를 들어, 사용자가 로그인할 때 특정 로직을 실행하도록 설정할 수 있습니다.
- session: 세션 관리 방식을 설정합니다. 세션 유효기간, 세션 체크 간격 등을 정의할 수 있습니다.
- pages: 인증과 관련된 특정 페이지(로그인, 로그아웃, 오류, 등록 페이지 등)의 경로를 설정할 수 있습니다.
- events: 로그인, 로그아웃 등의 인증 이벤트에 대한 이벤트 핸들러를 설정할 수 있습니다.
- theme: 로그인 페이지의 테마를 light 또는 dark로 설정하거나, 사용자 정의 테마를 적용할 수 있습니다.
예시코드
import clientPromise from "@/libs/mongoClient";
import { MongoDBAdapter } from "@auth/mongodb-adapter";
import NextAuth from "next-auth"
import GoogleProvider from "next-auth/providers/google"
export const authOptions = {
adapter: MongoDBAdapter(clientPromise),
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET
})
]
};
const handler = NextAuth(authOptions)
export { handler as GET, handler as POST}