Sequelize 轉接器
資源
設定
安裝
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)
// Calling sync() is not recommended in production
sequelize.sync()
export const { handlers, auth, signIn, signOut } = NextAuth({
adapter,
})
進階用法
使用自訂模型
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.org.tw/reference/providers/
providers: [],
adapter: SequelizeAdapter(sequelize, {
models: {
User: sequelize.define("user", {
...models.User,
phoneNumber: DataTypes.STRING,
}),
},
}),
})