跳到內容
從 NextAuth.js v4 遷移?請閱讀 我們的遷移指南.

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,
      }),
    },
  }),
})
Auth.js © Balázs Orbán 和團隊 -2024