Skip to content
Docs

Passport token claims

Passport issues a signed JSON Web Token (JWT) after a visitor authenticates. The token combines standard OpenID Connect claims, Vercel deployment context, and identity claims returned through the Connect application.

Claims marked optional only appear when the identity provider or Connect application supplies them. Applications must validate the token before trusting any claim.

ClaimRequiredDescription
issYesPassport issuer. Team-scoped tokens use https://passport.vercel.com/[TEAM_SLUG]. Use iss with sub when storing a visitor identifier.
subYesStable Passport principal within its issuer and Connector application. Treat it as opaque and do not parse it.
audYesAudience for the Vercel owner, source project, and environment that minted the token.
iatYesUnix timestamp when Passport issued the token.
nbfYesUnix timestamp before which the token is not valid.
expYesUnix timestamp after which the token is not valid.
ClaimRequiredDescription
typYesToken type. Passport tokens use passport.
ownerYesVercel team slug.
owner_idOptionalVercel team ID.
projectOptionalName of the Vercel project that minted the token.
project_idOptionalID of the Vercel project that minted the token.
environmentOptionalVercel environment that minted the token, such as production or preview.
scopeOptionalHost-specific scope for the Passport session. Do not treat this as the list of OAuth scopes requested from the identity provider.
planOptionalVercel plan recorded when Passport issued the token.
sidOptionalPassport session identifier. Do not use it as the visitor identifier.
ClaimRequiredDescription
connector_idYesID of the Connect application used to authenticate the visitor.
external_subYesSubject returned by the identity provider. It is Connector-specific metadata and is not globally unique.
external_issOptionalIssuer reported for the external identity.
emailOptionalVisitor email returned by the identity provider.
email_verifiedOptionalWhether the identity provider reports the email as verified.
nameOptionalVisitor name returned by the identity provider.
tenant_idOptionalTenant identifier returned by supported providers.
installation_idOptionalInstallation identifier returned by supported providers.

The token can also include allowlisted claims forwarded by Connect, such as groups. Their names and value shapes depend on the identity provider. Validate their presence and type before using them for authorization.

Use sub as the visitor identifier when your application accepts tokens from one Passport issuer. When it accepts more than one issuer, store iss and sub together.

Do not use email, name, sid, or external_sub alone as a global identifier. These values can change, can be absent, or can overlap across identity providers and Connector applications.

Reading or decoding a JWT does not verify it. Before trusting these claims, verify the signature, issuer, audience, validity period, typ, project, and environment. See Verify forwarded Passport tokens.

Last updated July 20, 2026

Was this helpful?

supported.