Compare commits

..
4 Commits
+10 -3
View File
@@ -77,6 +77,8 @@ public static class Api
options.SaveTokens = true; options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true; options.GetClaimsFromUserInfoEndpoint = true;
options.ForwardSignOut = CookieAuthenticationDefaults.AuthenticationScheme;
options.Scope.Clear(); options.Scope.Clear();
options.Scope.Add("openid"); options.Scope.Add("openid");
options.Scope.Add("profile"); options.Scope.Add("profile");
@@ -143,17 +145,22 @@ public static class Api
}); });
}); });
app.MapGet("/logout", async (HttpContext context) => app.MapGet("/logout", async (HttpContext context, string? redirectUri = null) =>
{ {
var idToken = await context.GetTokenAsync("id_token"); var idToken = await context.GetTokenAsync("id_token");
var authProperties = new AuthenticationProperties { RedirectUri = "/", }; if (string.IsNullOrWhiteSpace(redirectUri))
{
var host = context.Request.Host.ToUriComponent();
redirectUri = $"https://{host}/";
}
var authProperties = new AuthenticationProperties { RedirectUri = redirectUri, };
if (!string.IsNullOrEmpty(idToken)) if (!string.IsNullOrEmpty(idToken))
authProperties.Parameters.Add("id_token_hint", idToken); authProperties.Parameters.Add("id_token_hint", idToken);
await context.SignOutAsync(OpenIdConnectDefaults.AuthenticationScheme, authProperties); await context.SignOutAsync(OpenIdConnectDefaults.AuthenticationScheme, authProperties);
await context.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
}); });
return app; return app;