veil

Read a sign-in request

The consent page's data: the app, whether a card vouches for it, the scopes, and the fields the consent text signs.

GET/oidc/requests/{id}
Access
Private code required
Client
Local or server client

Parameters#

NameLocationMeaning
idRequiredPathThe request id: 43 characters from the consent page's address (`?req=`) or its meta element.

Request examples#

cURL
curl -fsS 'https://veil.rip/oidc/requests/{id}'

Response#

HTTP 200application/json

The request as the server checked it.

FieldTypeMeaning
idstringThe request id.
issuerstringhttps://veil.rip.
clientobject{id, name, site, logo, verified, owner, dynamic, type}.
redirectUristringWhere the code goes.
redirectHoststring | nullIts host, for the page.
scopesarray<string>In the order the consent signs them.
promptstring | nullThe app's prompt.
uiLocalesstring | nullThe app's ui_locales.
askEveryTimebooleanThe redirect URI is on the loopback interface (a native app): the page asks for the click every time, even for an app the card approved.
consentobject{prefix, iss, client, redirect, scopes, nonce, state (SHA-256 hex or null), challenge, request}: the signed fields.
createdAtstringISO 8601 UTC.
expiresAtstring30 minutes after.

Response headers#

HeaderValueMeaning
Content-Typeapplication/jsonJSON, also for errors.
Cache-Controlno-storePrivate: never cached.

Usage notes#

  • Anyone with the id can read it, as anyone with the URL can open the page. No CORS.

Errors#

API errors return an error object. Use error.code for program logic; error.message is English text for people and can change. Response and error guide

HTTPCodeMeaning and next step
404not_found

The requested card, key, alias, code or resource was not found.

Check the identifier. Temporary codes and previews may already have expired or been used.

410request_expired

The sign-in request was used or is older than 30 minutes.

Go back to the app and start again.

Shared request errors
HTTPCodeMeaning and next step
429rate_limited

An anonymous, signed-request or API-key allowance was exceeded.

Wait at least Retry-After seconds. Share a queue and retry budget across your workers.

500internal_error

An unexpected server error occurred. Internal details are not returned.

Retry reads with bounded backoff. Check write results before sending a new signed operation.

503busy

The application has reached a temporary concurrency or database limit.

Wait Retry-After seconds and retry with bounded backoff.