Skip to content
Migrating from NextAuth.js v4? Read our migration guide.

Sequelize Adapter

리소스

설정

설치

npm install @auth/sequelize-adapter sequelize

환경 변수

DATABASE_URL=postgres://postgres:adminadmin@0.0.0.0:5432/db

설정

⚠️

여러분은 선택한 데이터베이스의 드라이버를 수동으로 설치해야 합니다.

./auth.ts
import NextAuth from "next-auth"
import SequelizeAdapter from "@auth/sequelize-adapter"
import { Sequelize } from "sequelize"
 
const sequelize = new Sequelize(process.env.DATABASE_URL)
 
export const { handlers, auth, signIn, signOut } = NextAuth({
  providers: [],
  adapter: SequelizeAdapter(sequelize),
})

스키마

기본적으로 Sequelize 어댑터는 데이터베이스에 테이블을 자동으로 생성하지 않습니다. 프로덕션 환경에서는 마이그레이션을 통해 데이터베이스에 필요한 테이블을 생성하는 것이 가장 좋은 방법입니다. 개발 환경에서는 sequelize.sync()를 호출하여 Sequelize가 필요한 테이블, 외래 키, 인덱스를 생성하도록 할 수 있습니다.

이 스키마는 Sequelize에서 사용하도록 조정되었으며, 주요 스키마를 기반으로 합니다.

./auth.ts
import NextAuth from "next-auth"
import SequelizeAdapter from "@auth/sequelize-adapter"
import Sequelize from "sequelize"
 
const sequelize = new Sequelize("sqlite::memory:")
const adapter = SequelizeAdapter(sequelize)
 
// 프로덕션 환경에서는 sync() 호출을 권장하지 않음
sequelize.sync()
 
export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter,
})

Advanced usage

커스텀 모델 사용하기

Sequelize 모델은 다음과 같이 커스터마이징할 수 있습니다:

./auth.ts
import NextAuth from "next-auth"
import SequelizeAdapter, { models } from "@auth/sequelize-adapter"
import Sequelize, { DataTypes } from "sequelize"
 
const sequelize = new Sequelize("sqlite::memory:")
 
export const { handlers, auth, signIn, signOut } = NextAuth({
  // https://authjs.dev/reference/providers/
  providers: [],
  adapter: SequelizeAdapter(sequelize, {
    models: {
      User: sequelize.define("user", {
        ...models.User,
        phoneNumber: DataTypes.STRING,
      }),
    },
  }),
})
Auth.js © Balázs Orbán and Team - 2025