Sign in with FleetBold
OpenID Connect: add the `openid` scope to receive a signed `id_token` for the user.
Draft
FleetBold is an OpenID Connect provider: add openid to the OAuth flow you already use and the token response carries a signed id_token saying who the user is. Available once FleetBold enables OpenID Connect; until then openid is refused with invalid_scope (openid_unavailable).
Discoverybash
curl https://partners-api.fleetbold.com/.well-known/openid-configurationscopemust containopenid;profileandemailare accepted as aliases ofprofile:readandprofile:email(also on refresh).- Send a
nonce(at most 512 characters) and check it in the id_token. - FleetBold asks for the FleetBold e-mail and password on every authorization, and the id_token
auth_timeis that sign-in. Withmax_age(minimum 60 s), or withprompt=login(5 minutes), a user who takes longer than that between signing in and approving is asked to sign in again.prompt=consentchanges nothing: consent is shown every time. prompt=nonenever shows a page and never returns a code: a live app getslogin_requiredat once; an app that is not live yet gets a FleetBold page whose Return link delivers the samelogin_required. Keep users connected withoffline_accessand refresh tokens instead.- Validate the id_token: signature with the key of its
kidfromjwks_uri(refetch the JWKS on an unknownkid),iss,aud/azp= yourclient_id,exp,nonce. sub(usr_…) is the stable account key — never the e-mail. The id_token is issued only on the code exchange, never on refresh.
The authorization page is the authorization_endpoint of the discovery document. In the Go-live scope evidence (informational), openid (and profile:read / profile:email) counts as used after one issued id_token or one successful /userinfo call in the last 90 days.