Next.js 14 시작하기 #17 NextAuth

HanHyuk·2024년 1월 10일

Next.js

목록 보기
18/18

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}
profile
선한 영향력을 펼치는 개발자가 되겠습니다.

0개의 댓글