samples/ in the repository (veriqa.app/source) and is MIT-licensed.
Veriqa lives on the issuer side. The website itself stays a plain OIDC relying party: the
client sample has no Veriqa package and would look the same against any conformant provider.
The samples
Run the pair
The issuer starts first — otherwise the client fails its discovery call.1
Enable a channel on the issuer
The issuer ships with every channel
"Enabled": false, and with none enabled the sign-in page
returns no_channels_available. Enable a channel in
samples/dotnet/inproc/login/appsettings.Development.json and give it credentials — a bot token
is the quickest route, see Channel setup.2
Start the issuer
Hello! and nothing more: the issuer has no page for a signed-in user;
the sign-in starts and ends at the client.3
Start the client and sign in
https://localhost:7020/. An anonymous visitor goes straight to the Veriqa sign-in page;
after the confirmation in the messenger the page shows Hello, {name}!.dotnet dev-certs https --trust). Use the
https address of the client: a flow started over plain HTTP sends a redirect_uri the issuer does
not know.
Why the pair needs no configuration
The issuer already registers the second project as its client, so three values agree out of the box:redirect_uri is compared literally, without wildcards: change the client’s port and change
AllowedRedirectUris with it. my-app has no ClientSecret, so it is a public client and PKCE
(S256) is required of it.
What else the client shows
- Cancel on the Veriqa page returns
error=access_denied; the client turns it into a plain “sign-in canceled” page throughAccessDeniedPath. - Any other failed return goes through
OnRemoteFailureto a “sign-in failed” page; the error text goes to the log, not to the user. GET /signoutdrops only the local cookie. Veriqa has no end-session endpoint, so there is no federated sign-out — see Known limitations.
See also
- .NET quickstart — the same wiring, step by step
- How the auth flow works
- Passwordless sign-in and registration
- Video: sign-in on a website