我已经基于最新的Microsoft模板编写了Blazor WASM应用程序。在开发模式下,一切正常,但是将其发布到Azure App Service之后,我在调用API时会随机得到401未经授权,并查看返回的标头
WWW-Authenticate: Bearer error="invalid_token", error_description="The issuer 'https://*domain*.azurewebsites.net' is invalid"
这是客户端使用https:// domain .azurewebsites.net客户端的时间。因此它与网络API相匹配。
我还有一个附加到应用程序服务的自定义域,这意味着也有https:// www。 domain .co.uk和https:// domain .co.uk都经过SSL认证。
我已经检查了JWT令牌,并且该令牌包含我所呼叫网站版本的正确URL。
有时一切正常,但60%的时间允许用户登录,然后API调用失败。我似乎无法将其跟踪到1个域名或过期登录之类的模式。如果先注销然后再登录,则不能解决问题。
配置看起来像这样
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseWebAssemblyDebugging();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseHttpsRedirection();
app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
app.UseRouting();
app.UseIdentityServer();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html");
});
}
感谢任何帮助或正确方向的提示
欢呼
戴夫