如何解决无法静默刷新安全令牌、Azure B2C、Blazor WASM
我正在制作 Blazor WASM 应用并按照这些说明启用身份验证。
Secure and ASP.NET Core Blazor WASM
我在 Program.cs
文件中添加了一行...
options.ProviderOptions.Cache.CacheLocation = "localStorage";
它似乎有效 - 登录、未登录时重定向等。但是当令牌在大约一个小时后到期时,我所有通过注入的 HttpClient
进行的网络调用都失败并显示 AccessTokenNotAvailableException
。这超级烦人。 令牌不应该在不需要用户交互的情况下自动刷新吗?还是刷新令牌总是需要用户交互?
我的解决方法是捕获这些异常并像这样调用重定向。这会引入一堆用户不期望的 UI,并且重定向不会将用户返回到发生安全问题的地方。
try {
var result = await _httpClient.GetFromJsonAsync...
return result;
}
catch (AccessTokenNotAvailableException e) {
e.Redirect();
return null;
}
我的网络调用是通过名为 ServerStorage
的范围服务进行的。 HTTP 客户端在 Program.cs 中初始化。
public ServerStorage(HttpClient httpClient) {
this._httpClient = httpClient;
}
builder.Services.AddScoped(sp => sp.GetRequiredService<IHttpClientFactory>().CreateClient("GroceriesWasmApp.ServerAPI"));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。