Skip to main content

providers

EndpointHandler​

EndpointHandler: <P, C, R> AdvancedEndpointHandler<P, C, R>

Either an URL (containing all the parameters) or an object with more granular control.

Type parameters​

  • P extends UrlParams
  • C = any
  • R = any

OAuthConfigInternal​

OAuthConfigInternal: <Profile> Omit<OAuthConfig<Profile>, OAuthEndpointType> & {authorization?: {url: URL;}; token?: {url: URL; request?: TokenEndpointHandler["request"];}; userinfo?: {url: URL; request?: UserinfoEndpointHandler["request"];};} & Pick<Required<OAuthConfig<Profile>>, "clientId" | "checks" | "profile">

We parsed authorization, token and userinfo to always contain a valid URL, with the params

Type parameters​

  • Profile

Provider​

Provider: <P> OIDCConfig<P> | OAuth2Config<P> | EmailConfig | CredentialsConfig & InternalProviderOptions | (...args: any) => OAuth2Config<P> | OIDCConfig<P> | EmailConfig | CredentialsConfig & InternalProviderOptions & InternalProviderOptions

Must be a supported authentication provider config:

  • OAuthConfig
  • EmailConfigInternal
  • CredentialsConfigInternal

For more information, see the guides:

See​

Type parameters​


ProviderType​

ProviderType: "oidc" | "oauth" | "email" | "credentials"

Providers passed to Auth.js must define one of these types.

See​


CommonProviderOptions​

Shared across all ProviderType

Properties​

id​

id: string

Uniquely identifies the provider in AuthConfig.providers It's also part of the URL

name​

name: string

The provider name used on the default sign-in page's sign-in button. For example if it's "Google", the corresponding button will say: "Sign in with Google"

type​

type: ProviderType

See ProviderType


OAuth2Config​

TODO:

Type parameters​

  • Profile

Properties​

id​

id: string

Identifies the provider when you want to sign in to a specific provider.

Example​
signIn("github"); // "github" is the provider ID
Overrides​

CommonProviderOptions.id

name​

name: string

The name of the provider. shown on the default sign in page.

Overrides​

CommonProviderOptions.name

allowDangerousEmailAccountLinking?​

allowDangerousEmailAccountLinking: boolean

Documentation

authorization?​

authorization: string | AuthorizationEndpointHandler

The login process will be initiated by sending the user to this URL.

Authorization endpoint

checks?​

checks: ("none" | "state" | "nonce" | "pkce")[]

The CSRF protection performed on the callback endpoint.

Default​
["pkce"]

[RFC 7636 - Proof Key for Code Exchange by OAuth Public Clients (PKCE)](https://www.rfc-editor.org/rfc/rfc7636.html#section-4) |
[RFC 6749 - The OAuth 2.0 Authorization Framework](https://www.rfc-editor.org/rfc/rfc6749.html#section-4.1.1) |
[OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#IDToken) |

client?​

client: Partial<Client>

Pass overrides to the underlying OAuth library. See oauth4webapi client for details.

profile?​

profile: ProfileCallback<Profile>

Receives the profile object returned by the OAuth provider, and returns the user object. This will be used to create the user in the database. Defaults to: id, email, name, image

Documentation

wellKnown?​

wellKnown: string

OpenID Connect (OIDC) compliant providers can configure this instead of authorize/token/userinfo options without further configuration needed in most cases. You can still use the authorize/token/userinfo options for advanced control.

Authorization Server Metadata


OIDCConfig​

TODO:

Type parameters​

  • Profile

Properties​

id​

id: string

Identifies the provider when you want to sign in to a specific provider.

Example​
signIn("github"); // "github" is the provider ID
Inherited from​

Omit.id

name​

name: string

The name of the provider. shown on the default sign in page.

Inherited from​

Omit.name

allowDangerousEmailAccountLinking?​

allowDangerousEmailAccountLinking: boolean

Documentation

Inherited from​

Omit.allowDangerousEmailAccountLinking

authorization?​

authorization: string | AuthorizationEndpointHandler

The login process will be initiated by sending the user to this URL.

Authorization endpoint

Inherited from​

Omit.authorization

checks?​

checks: ("none" | "state" | "nonce" | "pkce")[]

The CSRF protection performed on the callback endpoint.

Default​
["pkce"]

[RFC 7636 - Proof Key for Code Exchange by OAuth Public Clients (PKCE)](https://www.rfc-editor.org/rfc/rfc7636.html#section-4) |
[RFC 6749 - The OAuth 2.0 Authorization Framework](https://www.rfc-editor.org/rfc/rfc6749.html#section-4.1.1) |
[OpenID Connect Core 1.0](https://openid.net/specs/openid-connect-core-1_0.html#IDToken) |
Inherited from​

Omit.checks

client?​

client: Partial<Client>

Pass overrides to the underlying OAuth library. See oauth4webapi client for details.

Inherited from​

Omit.client

profile?​

profile: ProfileCallback<Profile>

Receives the profile object returned by the OAuth provider, and returns the user object. This will be used to create the user in the database. Defaults to: id, email, name, image

Documentation

Inherited from​

Omit.profile

wellKnown?​

wellKnown: string

OpenID Connect (OIDC) compliant providers can configure this instead of authorize/token/userinfo options without further configuration needed in most cases. You can still use the authorize/token/userinfo options for advanced control.

Authorization Server Metadata

Inherited from​

Omit.wellKnown