providers
Provider<P>β
Provider<
P>:OIDCConfig<P> |OAuth2Config<P> |EmailConfig|CredentialsConfig&InternalProviderOptions| (...args) =>OAuth2Config<P> |OIDCConfig<P> |EmailConfig|CredentialsConfig&InternalProviderOptions&InternalProviderOptions
Must be a supported authentication provider config:
- [OAuthConfig]([object Object])
- EmailConfigInternal
- CredentialsConfigInternal
For more information, see the guides:
Seeβ
Type parametersβ
βͺ P extends Profile = any
ProviderTypeβ
ProviderType:
"oidc"|"oauth"|"email"|"credentials"
Providers passed to Auth.js must define one of these types.
Seeβ
- RFC 6749 - The OAuth 2.0 Authorization Framework
- OpenID Connect Core 1.0
- Email or Passwordless Authentication
- Credentials-based Authentication
CommonProviderOptionsβ
Shared across all ProviderType
Extended Byβ
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<Profile>β
TODO: Document
Extendsβ
CommonProviderOptions.PartialIssuer
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β
providers.CommonProviderOptions.id
nameβ
name:
string
The name of the provider. shown on the default sign in page.
Overridesβ
providers.CommonProviderOptions.name
accountβ
account?:
AccountCallback
Receives the full TokenSet returned by the OAuth provider, and returns a subset. It is used to create the account associated with a user in the database.
You need to adjust your database's Account model to match the returned properties. Check out the documentation of your database adapter for more information.
Defaults to: access_token, id_token, refresh_token, expires_at, scope, token_type, session_state
Exampleβ
import GitHub from "@auth/core/providers/github"
// ...
GitHub({
account(account) {
// https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/refreshing-user-access-tokens#refreshing-a-user-access-token-with-a-refresh-token
const refresh_token_expires_at =
Math.floor(Date.now() / 1000) + Number(account.refresh_token_expires_in)
return {
access_token: account.access_token,
expires_at: account.expires_at,
refresh_token: account.refresh_token,
refresh_token_expires_at
}
}
})
Seeβ
- Database Adapter: Account model
- https://openid.net/specs/openid-connect-core-1_0.html#TokenResponse
- https://www.ietf.org/rfc/rfc6749.html#section-5.1