这个问题是由于在 OIDC 配置中未正确设置 RedirectUri 导致的。在 OIDC 配置中设置正确的 RedirectUri,如下所示:
services.AddOidcAuthentication(options =>
{
// ...
options.ProviderOptions.DefaultScopes.Add("openid");
options.ProviderOptions.DefaultScopes.Add("profile");
options.ProviderOptions.ResponseType = "code";
options.ProviderOptions.RedirectUri = "/authentication/login-callback";
options.UserOptions.RoleClaim = "role";
});
这个示例将 RedirectUri 设置为 "/authentication/login-callback"。
确保在您的身份验证回调组件中的 OnInitializedAsync 方法中设置正确的 Path 对象来纠正这个错误,如下所示:
protected override async Task OnInitializedAsync()
{
// ...
navigationManager.NavigateTo($"/authentication/login?returnUrl={System.Net.WebUtility.UrlEncode(navigationManager.Uri)}");
}
将 $"/authentication/login-callback" 替换为 $"/authentication/login"。