payload-auth-plugin
Version:
Authentication plugin for Payload CMS
548 lines (527 loc) • 14.2 kB
TypeScript
import { b as OAuthBaseProviderConfig, c as OAuth2ProviderConfig, d as OIDCProviderConfig, P as PasskeyProviderConfig, a as PasswordProviderConfig } from '../types-D_f0kW5e.js';
import 'oauth4webapi';
type AppleAuthConfig$1 = OAuthBaseProviderConfig;
/**
* Add Apple OAuth2 Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/apple
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {AppleOAuth2Provider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* AppleOAuth2Provider({
* client_id: process.env.APPLE_CLIENT_ID as string,
* client_secret: process.env.APPLE_CLIENT_SECRET as string,
* })
* ]
* })
*
* ]
* ```
*
*/
declare function AppleOAuth2Provider(config: AppleAuthConfig$1): OAuth2ProviderConfig;
type AtlassianAuthConfig = OAuthBaseProviderConfig;
/**
* Add Atlassian OAuth2 Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/atlassian
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {AtlassianAuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugins[] = [
* authPlugin({
* providers:[
* AtlassianAuthProvider({
* client_id: process.env.ATLASSIAN_CLIENT_ID as string,
* client_secret: process.env.ATLASSIAN_CLIENT_SECRET as string,
* })
* ]
* })
*
* ]
* ```
*
*/
declare function AtlassianAuthProvider(config: AtlassianAuthConfig): OAuth2ProviderConfig;
interface Auth0AuthConfig extends OAuthBaseProviderConfig {
domain: string;
}
/**
* Add Auth0 OAuth2 Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/auth0
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {Auth0AuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* Auth0AuthProvider({
* client_id: process.env.AUTH0_CLIENT_ID as string,
* client_secret: process.env.AUTH0_CLIENT_SECRET as string,
* domain: process.env.AUTH0_DOMAIN as string,
* })
* ]
* })
* ]
* ```
*
*/
declare function Auth0AuthProvider(config: Auth0AuthConfig): OAuth2ProviderConfig;
type DiscordAuthConfig = OAuthBaseProviderConfig;
/**
* Add Discord OAuth2 Provider
*
* ```
* https://example.com/api/{name}/oauth/callback/discord
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {DiscordAuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* DiscordAuthProvider({
* client_id: process.env.DISCORD_CLIENT_ID as string,
* client_secret: process.env.DISCORD_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*
*/
declare function DiscordAuthProvider(config: DiscordAuthConfig): OAuth2ProviderConfig;
type FacebookAuthConfig = OAuthBaseProviderConfig;
/**
* Add Facebook OAuth2 Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/facebook
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {FacebookAuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* FacebookAuthProvider({
* client_id: process.env.FACEBOOK_CLIENT_ID as string,
* client_secret: process.env.FACEBOOK_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*/
declare function FacebookAuthProvider(config: FacebookAuthConfig): OAuth2ProviderConfig;
type GitHubAuthConfig = OAuthBaseProviderConfig;
/**
* Add Github OAuth2 Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/github
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {GithubAuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* GithubAuthProvider({
* client_id: process.env.GITHUB_CLIENT_ID as string,
* client_secret: process.env.GITHUB_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*
*/
declare function GitHubAuthProvider(config: GitHubAuthConfig): OAuth2ProviderConfig;
type JumpCloudAuthConfig = OAuthBaseProviderConfig;
/**
* Add Jump Cloud OAuth2 Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/jumpcloud
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {JumpCloudAuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* JumpCloudAuthProvider({
* client_id: process.env.JUMP_CLOUD_CLIENT_ID as string,
* client_secret: process.env.JUMP_CLOUD_CLIENT_SECRET as string,
* })
* ]
* })
* ]
*/
declare function JumpCloudAuthProvider(config: JumpCloudAuthConfig): OAuth2ProviderConfig;
type TwitchAuthConfig = OAuthBaseProviderConfig;
/**
* Add Twitch OAuth2 Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/twitch
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {TwitchAuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* TwitchAuthProvider({
* client_id: process.env.TWITCH_CLIENT_ID as string,
* client_secret: process.env.TWITCH_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*/
declare function TwitchAuthProvider(config: TwitchAuthConfig): OAuth2ProviderConfig;
interface AppleAuthConfig extends OAuthBaseProviderConfig {
client_id: string;
params?: Record<string, string>;
}
/**
* Add Apple OIDC Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/apple
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import { authPlugin } from "payload-auth-plugin"
* import { AppleOIDCAuthProvider } from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* AppleOIDCAuthProvider({
* client_id: process.env.APPLE_CLIENT_ID as string,
* })
* ]
* })
* ```
*
*/
declare function AppleOIDCAuthProvider(config: AppleAuthConfig): OIDCProviderConfig;
interface CognitoAuthConfig extends OAuthBaseProviderConfig {
domain: string;
}
/**
* Add Cognito OIDC Provider
*
* #### Callback or Redirect URL pattern
* ```
* https://example.com/api/{name}/oauth/callback/cognito
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import { authPlugin } from "payload-auth-plugin"
* import { CognitoAuthProvider } from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* CognitoAuthProvider({
* client_id: process.env.COGNITO_CLIENT_ID as string,
* client_secret: process.env.COGNITO_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*
*/
declare function CognitoAuthProvider(config: CognitoAuthConfig): OIDCProviderConfig;
type GitLabAuthConfig = OAuthBaseProviderConfig;
/**
* Add GitLab OIDC Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/gitlab
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import { authPlugin } from "payload-auth-plugin"
* import { GitLabAuthProvider } from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* GitLabAuthProvider({
* client_id: process.env.GITLAB_CLIENT_ID as string,
* client_secret: process.env.GITLAB_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*
*/
declare function GitLabAuthProvider(config: GitLabAuthConfig): OIDCProviderConfig;
type GoogleAuthConfig = OAuthBaseProviderConfig;
/**
* Add Google OIDC Provider
*
* ```
* https://example.com/api/{name}/oauth/callback/google
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {GoogleAuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* GoogleAuthProvider({
* client_id: process.env.GOOGLE_CLIENT_ID as string,
* client_secret: process.env.GOOGLE_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*/
declare function GoogleAuthProvider(config: GoogleAuthConfig): OIDCProviderConfig;
interface KeyCloakAuthConfig extends OAuthBaseProviderConfig {
realm: string;
domain: string;
identifier: string;
name: string;
}
/**
* Add KeyCloak OIDC Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{app_name}/oauth/callback/{name}
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {KeyCloakAuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* KeyCloakAuthProvider({
* realm: process.env.KEYCLOAK_REALM as string,
* domain: process.env.KEYCLOAK_DOMAIN as string,
* identifier: process.env.KEYCLOAK_IDENTIFIER as string,
* name: process.env.KEYCLOAK_NAME as string,
* client_id: process.env.KEYCLOAK_CLIENT_ID as string,
* client_secret: process.env.KEYCLOAK_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*
*/
declare function KeyCloakAuthProvider(config: KeyCloakAuthConfig): OIDCProviderConfig;
type MicrosoftEntraAuthConfig = OAuthBaseProviderConfig & {
tenant_id: string;
skip_email_verification?: boolean | undefined;
};
/**
* Add Microsoft Entra OIDC Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/msft-entra
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import { authPlugin } from "payload-auth-plugin"
* import { MicrosoftEntraAuthProvider } from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* MicrosoftEntraAuthProvider({
* tenant_id: process.env.MICROSOFTENTRA_TENANT_ID as string,
* client_id: process.env.MICROSOFTENTRA_CLIENT_ID as string,
* client_secret: process.env.MICROSOFTENTRA_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*
*/
declare function MicrosoftEntraAuthProvider(config: MicrosoftEntraAuthConfig): OIDCProviderConfig;
interface OktaAuthConfig extends OAuthBaseProviderConfig {
domain: string;
}
declare function OktaAuthProvider(config: OktaAuthConfig): OIDCProviderConfig;
interface RobloxAuthConfig extends OAuthBaseProviderConfig {
/**
* Domain is required to create custom email addresses, since Roblox does not share users’ actual email addresses for security and privacy reasons. The plugin automatically generates a unique custom email address for each new signup.
*/
emailDomain: string;
skip_email_verification?: boolean | undefined;
}
/**
* Add Roblox OIDC Provider
*
* ```
* https://example.com/api/{name}/oauth/callback/roblox
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {RobloxAuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* RobloxAuthProvider({
* client_id: process.env.ROBLOX_CLIENT_ID as string,
* client_secret: process.env.ROBLOX_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*/
declare function RobloxAuthProvider(config: RobloxAuthConfig): OIDCProviderConfig;
type SlackAuthConfig = OAuthBaseProviderConfig;
/**
* Add Slack OIDC Provider
*
* #### Callback or Redirect URL pattern
*
* ```
* https://example.com/api/{name}/oauth/callback/slack
* ```
*
* #### Plugin Setup
*
* ```ts
* import { Plugin } from 'payload'
* import {authPlugin} from "payload-auth-plugin"
* import {SlackAuthProvider} from "payload-auth-plugin/providers"
*
* export const plugins: Plugin[] = [
* authPlugin({
* providers:[
* SlackAuthProvider({
* client_id: process.env.SLACK_CLIENT_ID as string,
* client_secret: process.env.SLACK_CLIENT_SECRET as string,
* })
* ]
* })
* ]
* ```
*
*/
declare function SlackAuthProvider(config: SlackAuthConfig): OIDCProviderConfig;
declare function PasskeyAuthProvider(): PasskeyProviderConfig;
type PasswordProviderOptions = {
/**
* Email templates
*/
emailTemplates: {
forgotPassword: any;
};
};
declare function PasswordProvider(options: PasswordProviderOptions): PasswordProviderConfig;
export { AppleOAuth2Provider, AppleOIDCAuthProvider, AtlassianAuthProvider, Auth0AuthProvider, CognitoAuthProvider, DiscordAuthProvider, FacebookAuthProvider, GitHubAuthProvider, GitLabAuthProvider, GoogleAuthProvider, JumpCloudAuthProvider, KeyCloakAuthProvider, MicrosoftEntraAuthProvider, OktaAuthProvider, PasskeyAuthProvider, PasswordProvider, RobloxAuthProvider, SlackAuthProvider, TwitchAuthProvider };