Fauna 轉接器
資源
設定
安裝
npm install @auth/fauna-adapter fauna
環境變數
AUTH_FAUNA_CLIENT=https://127.0.0.1:8443
AUTH_FAUNA_SECRET=abc123
組態
./auth.ts
import NextAuth from "next-auth"
import { Client } from "fauna"
import { FaunaAdapter } from "@auth/fauna-adapter"
const client = new Client({
secret: process.env.AUTH_FAUNA_SECRET,
endpoint: new URL(process.env.AUTH_FAUNA_CLIENT)
})
export { handlers, auth, signIn, signOut } = NextAuth({
providers: [],
adapter: FaunaAdapter(client)
})
遷移至 v2
在 @auth/adapter-fauna@2.0.0
中,我們已重新命名集合,以使用大寫命名模式,符合 Fauna 的最佳實務。如果您是從 v1 遷移,則需要重新命名您的集合,以符合新的命名方案。此外,我們已重新命名索引,以符合新的類似方法名稱的索引名稱(例如,account_by_user_id
改為 Account.byUserId
)。如需遷移 Fauna 綱要的詳細資訊,請參閱此處的遷移指南 。
綱要
在 Fauna 儀表板中的 Shell
索引標籤內執行以下命令,以設定適當的集合和索引。
authjs-fauna-adapter-schema.fql
Collection.create({
name: "Account",
indexes: {
byUserId: {
terms: [
{ field: "userId" }
]
},
byProviderAndProviderAccountId: {
terms [
{ field: "provider" },
{ field: "providerAccountId" }
]
},
}
})
Collection.create({
name: "Session",
constraints: [
{
unique: ["sessionToken"],
status: "active",
}
],
indexes: {
bySessionToken: {
terms: [
{ field: "sessionToken" }
]
},
byUserId: {
terms [
{ field: "userId" }
]
},
}
})
Collection.create({
name: "User",
constraints: [
{
unique: ["email"],
status: "active",
}
],
indexes: {
byEmail: {
terms [
{ field: "email" }
]
},
}
})
Collection.create({
name: "VerificationToken",
indexes: {
byIdentifierAndToken: {
terms [
{ field: "identifier" },
{ field: "token" }
]
},
}
})
自訂集合名稱
如果您想要使用自訂的集合名稱,您可以將它們作為選項傳遞給轉接器,如下所示
FaunaAdapter(client, {
collectionNames: {
user: "CustomUser",
account: "CustomAccount",
session: "CustomSession",
verificationToken: "CustomVerificationToken",
},
})
請確保您傳遞給提供者的集合名稱與您的 Fauna 資料庫的集合名稱相符。