企業プロキシのサポート
Auth.jsライブラリは、OAuthプロバイダーと通信するためにfetch
APIを使用します。組織で企業プロキシを使用している場合は、プロキシを使用するようにfetch
APIを設定する必要がある場合があります。
カスタムfetch関数の使用
プロバイダーにオプションとして渡すことで、カスタムのfetch
関数を提供できます。
ここでは、undici
ライブラリを使用して、undici
によるfetch
実装にdispatcher
を渡すことで、プロキシサーバーを介してリクエストを行います。
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 })],
})