From 60095057b7310824ff4306fbf28ee8e37fc39aa3 Mon Sep 17 00:00:00 2001 From: Khwezi Mngoma Date: Sun, 7 Jun 2026 13:11:33 +0200 Subject: [PATCH] Added token hint to logout event --- LiteCharms.Features/Extensions/Api.cs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/LiteCharms.Features/Extensions/Api.cs b/LiteCharms.Features/Extensions/Api.cs index a94b29e..28a8ca1 100644 --- a/LiteCharms.Features/Extensions/Api.cs +++ b/LiteCharms.Features/Extensions/Api.cs @@ -10,7 +10,7 @@ public static class Api public const string Books = nameof(Books); public const string Payments = nameof(Payments); - public static IServiceCollection AddLiteCharmsUiSecurity(this IServiceCollection services, IConfiguration configuration) + public static IServiceCollection AddLiteCharmsWebSecurity(this IServiceCollection services, IConfiguration configuration) { var configSection = configuration.GetSection(nameof(LiteCharmsSettings)); @@ -40,6 +40,24 @@ public static class Api options.Scope.Add("openid"); options.Scope.Add("profile"); options.Scope.Add("email"); + + options.Events = new OpenIdConnectEvents + { + OnRedirectToIdentityProviderForSignOut = context => + { + var idToken = context.ProtocolMessage.IdTokenHint; + + if (string.IsNullOrEmpty(idToken)) + { + var tokens = context.Properties.GetTokens(); + var idTokenItem = tokens.FirstOrDefault(t => string.Equals(t.Name, "id_token", StringComparison.Ordinal)); + + if (idTokenItem != null) context.ProtocolMessage.IdTokenHint = idTokenItem.Value; + } + + return Task.CompletedTask; + }, + }; }); services.AddCascadingAuthenticationState();