UNPKG

@auth/core

Version:

Authentication for the Web.

30 lines (27 loc) 838 B
import type { InternalProvider, ResponseInternal } from "../../types.js" export interface PublicProvider { id: string name: string type: string signinUrl: string callbackUrl: string } /** * Return a JSON object with a list of all OAuth providers currently configured * and their signin and callback URLs. This makes it possible to automatically * generate buttons for all providers when rendering client side. */ export function providers( providers: InternalProvider[] ): ResponseInternal<Record<string, PublicProvider>> { return { headers: { "Content-Type": "application/json" }, body: providers.reduce<Record<string, PublicProvider>>( (acc, { id, name, type, signinUrl, callbackUrl }) => { acc[id] = { id, name, type, signinUrl, callbackUrl } return acc }, {} ), } }