OIDC Client Manual Mode
OpenID Connect is a protocol that allows you to authenticate users using a browser and involves browser-based interactions. When using this library you can choose between two modes: automatic and manual.
We recommend using automatic mode when possible, but sometimes you need to use manual mode when you want to handle browser interactions yourself.
With manual mode, OidcClient
is still useful, as it helps
with creating the necessary start URL and state parameters needed to complete an OIDC flow.
You’ll need to handle all browser interactions yourself with custom code. This is beneficial
for scenarios where you want to customize the browser experience or when you want to
integrate with other platform-specific browser libraries.
var options = new OidcClientOptions{ Authority = "https://demo.duendesoftware.com", ClientId = "native", RedirectUri = redirectUri, Scope = "openid profile api"};
var client = new OidcClient(options);
// generate start URL, state, nonce, code challengevar state = await client.PrepareLoginAsync();
When the browser work is done, OidcClient
can take over to process the
response, get the access/refresh tokens, contact userinfo endpoint
etc.:
var result = await client.ProcessResponseAsync(data, state);
When using this manual mode, and processing the response, the ProcessResponseAsync
method will return a
LoginResult
which will contain a ClaimsPrincipal
with the user’s claims along with the IdentityToken
and AccessToken
.