我已使用身份服务器保护了我的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,在那里可以看到我的标头。 但是我得到了未授权,而如果我获得了令牌并尝试使用邮递员,一切都会正常!
我知道浏览器的工作方式有所不同,与Postman不同,它先发出预检请求,但是我仍然无法弄清楚为什么我会遭到未授权?
我已经启用了API上的所有标头/源,例如
services.AddCors(o => o.AddPolicy("CorsPolicy", builder =>
{
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
}));
和
app.UseCors("CorsPolicy");