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,
}),
},
}),
})