Apple OAuth Provider

Authenticate using Apple OAuth provider. Supports both OIDC and OAuth2 protocols.


For OAuth2

src/payload.config.ts
ts
            import { buildConfig } from "payload/config";
import { adminAuthPlugin } from "payload-auth-plugin";
import { AppleOAuth2Provider } from "payload-auth-plugin/providers";

export default buildConfig({
  // --- rest of the config
  plugins: [
    // --- rest of the plugins
    adminAuthPlugin({
      providers: [
        AppleOAuth2Provider({
          client_id: process.env.PROVIDER_CLIENT_ID as string,
          client_secret: process.env.PROVIDER_CLIENT_SECRET as string,
        }),
      ],
    }),
  ],
});

        

For OIDC

src/payload.config.ts
ts
            import { buildConfig } from "payload/config";
import { adminAuthPlugin } from "payload-auth-plugin";
import { AppleOIDCAuthProvider } from "payload-auth-plugin/providers";

export default buildConfig({
  // --- rest of the config
  plugins: [
    // --- rest of the plugins
    adminAuthPlugin({
      providers: [
        AppleOIDCAuthProvider({
          client_id: process.env.PROVIDER_CLIENT_ID as string,
        }),
      ],
    }),
  ],
});

        

Parameters

config AppleAuthConfig


Returns

provider OAuth2ProviderConfig for AppleOAuth2Provider

provider OIDCProviderConfig for AppleOIDCAuthProvider


AppleAuthConfig

AppleAuthConfig.client_id:

Type: string

Description: client_id is a string generated by Apple to identify your Payload app.

Optional: No.

ts
            {
  client_id: "";
}

        

AppleAuthConfig.client_secret:

Type: string

Description: client_secret is a private key generated by Apple to authenticate your Payload app. This is not required if you are using AppleOIDCAuthProvider.

Optional: No.

ts
            {
  client_secret: "";
}

        

AppleAuthConfig.params:

Type: Record<string, string>

Description: params any additional parameters to pass to the IDP for authorization.

Optional: Yes.

ts
            {
  params: {
    // additional parameters
  }
}