The expected audience for tokens from this provider
OptionalclientOAuth client ID for this provider (used by OAuth proxy for upstream auth)
ProtectedconfigThe issuer URL for this provider (must match the 'iss' claim in tokens)
ProtectedjwksThe JWKS endpoint URL for retrieving signing keys
Unique name identifier for this provider
Extracts user information from a WorkOS AuthKit JWT payload.
email, given_name, and family_name are expected to be supplied by a WorkOS JWT
Template (see class docs). sub is the stable WorkOS user id (user_...). We fall back
through standard OIDC claim names so a token shaped by a custom template (e.g. one that
only sets name) still resolves a usable identity.
Gets the signing key for token verification with retry logic
Checks if a given issuer URL belongs to this provider
Validates WorkOS-specific configuration.
Beyond the base requirements (name, issuer, audience, jwksUri), WorkOS needs a
clientId — it appears in both the issuer and JWKS URLs and identifies the AuthKit
environment.
WorkOS (AuthKit) authentication provider implementation.
Validates JWT access tokens minted by WorkOS AuthKit / User Management. These tokens are signed with RS256 and verified against the per-environment JWKS endpoint (
https://api.workos.com/sso/jwks/<clientId>); theirissclaim ishttps://api.workos.com/user_management/<clientId>.Email is required — and is NOT in a WorkOS token by default
MemberJunction resolves the signed-in user by email, but a WorkOS AuthKit access token only carries identity/session claims (
sub,sid,org_id,role,permissions) out of the box — it does not includeemail. To use WorkOS with MJ you must add the email (and ideally the name) to the token via a WorkOS JWT Template:See
WORKOS.mdin this package for the full, step-by-step integration guide.