Quickstarts
🔑 Auth:
client_id+client_secret(server-side) · 👤 This IS the login — standard OpenID Connect · ⏱ 5–10 minutes per path
Pick your stack — every path ends in the same place: a working Connect with Valyd that hands
your backend the user’s pseudonymous valyd_id and verification proofs.
Every quickstart needs the same two credentials: a client_id and a one-time client_secret
from an app in the Developer Portal . Your real values are pre-filled on
your app’s Quick setup tab — the Connect with Valyd page shows exactly where that
screen lives.
Official SDK
The fastest route — @valyd/sdk generates state, nonce, and S256 PKCE for you and
verifies everything on the callback in one call.
One file, two routes with the official SDK — the complete reference example. ~5 minutes.
Node.js (Express)Two route handlers with the SDK server-side and the transaction in a cookie. ~10 minutes.
Next.js (App Router)Raw API recipes
No SDK — plain HTTP against the standard OIDC endpoints, in your framework’s own idioms.
Two Flask routes with requests: session state, form-encoded token exchange, userinfo. ~10 minutes.
Two Laravel routes with the Http client and a hash_equals state check. ~10 minutes.
Walk the whole flow by hand — authorize URL, code, token exchange, userinfo. ~5 minutes.
cURL (raw HTTP)Auth.js, Passport, Spring Security, or an SSO console — point it at our discovery URL. ~5 minutes.
Any OIDC library