跳至内容
从 NextAuth.js v4 迁移?阅读 我们的迁移指南.
指南支持企业代理

支持企业代理

Auth.js 库使用 fetch API 与 OAuth 提供者通信。如果您的组织使用企业代理,您可能需要配置 fetch API 以使用代理。

使用自定义 fetch 函数

您可以通过将自定义 fetch 函数作为选项传递给提供者来提供它。

这里,我们使用 undici 库通过代理服务器发出请求,方法是将 dispatcher 传递给 undici 实现的 fetch

auth.ts
import NextAuth, { customFetch } from "next-auth"
import GitHub from "next-auth/providers/github"
import { ProxyAgent, fetch as undici } from "undici"
 
const dispatcher = new ProxyAgent("my.proxy.server")
function proxy(...args: Parameters<typeof fetch>): ReturnType<typeof fetch> {
  // @ts-expect-error `undici` has a `duplex` option
  return undici(args[0], { ...args[1], dispatcher })
}
 
export const { handlers, auth } = NextAuth({
  providers: [GitHub({ [customFetch]: proxy })],
})

资源

Auth.js © Balázs Orbán 和团队 -2024