Я защитил свое приложение Blazor с помощью сервера идентификации. Пока все хорошо, я устанавливаю токен в моем http-клиенте как
services.AddHttpClient<SomeService>(async (serviceProvider, client) =>
{
var httpContextAccessor = serviceProvider.GetService<IHttpContextAccessor>();
var accessToken = await httpContextAccessor.HttpContext.GetTokenAsync("access_token");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
client.BaseAddress = new Uri(baseAddress);
});
В моем сервисе я получаю HttpClient через конструктор, который работает нормально, я вижу там свой заголовок. Но я получаю Unauthorized, хотя, если я получаю токен и пытаюсь с почтальоном, все работает!
Я знаю, что браузер работает по-другому, сначала делая предварительный запрос, в отличие от Postman, но я все еще не могу выяснить, почему я не авторизован?
Я включил все заголовки / происхождение в моем API, как
services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
И
app.UseCors("CorsPolicy");