Browse Source

Update InteractiveChallengeRequest and InteractiveSignOutRequest to support attaching an identity token or login hint

pull/2249/head
Kévin Chalet 1 year ago
parent
commit
bd74a6caf1
  1. 1
      sandbox/OpenIddict.Sandbox.Console.Client/InteractiveService.cs
  2. 22
      src/OpenIddict.Client/OpenIddictClientModels.cs
  3. 4
      src/OpenIddict.Client/OpenIddictClientService.cs

1
sandbox/OpenIddict.Sandbox.Console.Client/InteractiveService.cs

@ -126,6 +126,7 @@ public class InteractiveService : BackgroundService
var nonce = (await _service.SignOutInteractivelyAsync(new() var nonce = (await _service.SignOutInteractivelyAsync(new()
{ {
CancellationToken = stoppingToken, CancellationToken = stoppingToken,
IdentityTokenHint = response.BackchannelIdentityToken ?? response.FrontchannelIdentityToken,
ProviderName = provider ProviderName = provider
})).Nonce; })).Nonce;

22
src/OpenIddict.Client/OpenIddictClientModels.cs

@ -165,6 +165,17 @@ public static class OpenIddictClientModels
[EditorBrowsable(EditorBrowsableState.Advanced)] [EditorBrowsable(EditorBrowsableState.Advanced)]
public string? GrantType { get; init; } public string? GrantType { get; init; }
/// <summary>
/// Gets or sets the optional identity token hint that will
/// be sent to the authorization server, if applicable.
/// </summary>
public string? IdentityTokenHint { get; set; }
/// <summary>
/// Gets or sets the optional login hint that will be sent to the authorization server, if applicable.
/// </summary>
public string? LoginHint { get; set; }
/// <summary> /// <summary>
/// Gets or sets the application-specific properties that will be added to the context. /// Gets or sets the application-specific properties that will be added to the context.
/// </summary> /// </summary>
@ -253,6 +264,17 @@ public static class OpenIddictClientModels
/// </summary> /// </summary>
public CancellationToken CancellationToken { get; init; } public CancellationToken CancellationToken { get; init; }
/// <summary>
/// Gets or sets the optional identity token hint that will
/// be sent to the authorization server, if applicable.
/// </summary>
public string? IdentityTokenHint { get; set; }
/// <summary>
/// Gets or sets the optional login hint that will be sent to the authorization server, if applicable.
/// </summary>
public string? LoginHint { get; set; }
/// <summary> /// <summary>
/// Gets or sets the application-specific properties that will be added to the context. /// Gets or sets the application-specific properties that will be added to the context.
/// </summary> /// </summary>

4
src/OpenIddict.Client/OpenIddictClientService.cs

@ -389,7 +389,9 @@ public class OpenIddictClientService
CancellationToken = request.CancellationToken, CancellationToken = request.CancellationToken,
CodeChallengeMethod = request.CodeChallengeMethod, CodeChallengeMethod = request.CodeChallengeMethod,
GrantType = request.GrantType, GrantType = request.GrantType,
IdentityTokenHint = request.IdentityTokenHint,
Issuer = request.Issuer, Issuer = request.Issuer,
LoginHint = request.LoginHint,
Principal = new ClaimsPrincipal(new ClaimsIdentity()), Principal = new ClaimsPrincipal(new ClaimsIdentity()),
ProviderName = request.ProviderName, ProviderName = request.ProviderName,
RegistrationId = request.RegistrationId, RegistrationId = request.RegistrationId,
@ -1399,7 +1401,9 @@ public class OpenIddictClientService
var context = new ProcessSignOutContext(transaction) var context = new ProcessSignOutContext(transaction)
{ {
CancellationToken = request.CancellationToken, CancellationToken = request.CancellationToken,
IdentityTokenHint = request.IdentityTokenHint,
Issuer = request.Issuer, Issuer = request.Issuer,
LoginHint = request.LoginHint,
Principal = new ClaimsPrincipal(new ClaimsIdentity()), Principal = new ClaimsPrincipal(new ClaimsIdentity()),
ProviderName = request.ProviderName, ProviderName = request.ProviderName,
RegistrationId = request.RegistrationId, RegistrationId = request.RegistrationId,

Loading…
Cancel
Save