Я использую промежуточное ПО vue cli с сервером идентификации с Hybrid Flow.При вызове Ajax я перенаправил вручную на identityprovider, как показано ниже.
options.Events.OnRedirectToIdentityProvider = context =>
{
if (context.Request.Path.StartsWithSegments("/api"))
{
if (context.Response.StatusCode == (int)HttpStatusCode.OK)
{
context.ProtocolMessage.State = options.StateDataFormat.Protect(context.Properties);
context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
context.Response.Headers["Location"] = context.ProtocolMessage.CreateAuthenticationRequestUrl();
}
context.HandleResponse();
}
return Task.CompletedTask;
};
При обратном вызове от identityserver я получаю ошибку ниже.
KeyNotFoundException: данный ключ 'OpenIdConnect.Code.RedirectUri 'отсутствует в словаре.
Ниже приведен стек вызовов.
Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler.HandleRequestAsync () Microsoft.AspNetCore.Authentication.AuthenticationMid.Invoke (контекст HttpContext). Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke (контекст HttpContext) Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke (контекст HttpContext)* Что не так?
Я использую идентификационный сервер из репо ниже.
https://github.com/IdentityServer/IdentityServer4
Мое раздвоенное репо (с кодом выше)
https://github.com/hnviradiya/asp-net-core-vue-starter