如何解决Blazor WASM B2C - 在 AccessTokenNotAvailableException 上重定向
我正在开发一个 Blazor WASM 应用程序,该应用程序使用 B2C 对用户进行身份验证,但当我将登录模式设置为“重定向”而不是“弹出窗口”时,无法刷新访问令牌。我已经将我的代码拉回到绝对最小值,这基本上是教程:https://docs.microsoft.com/en-us/aspnet/core/blazor/security/webassembly/hosted-with-azure-active-directory-b2c?view=aspnetcore-5.0
根据 Microsoft 的示例,我将我的 http 调用包装在一个 try/catch 块中,如下所示,目的是如果访问令牌过期,则检索新的访问令牌并重新加载页面:
try
{
forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("WeatherForecast");
}
catch (AccessTokenNotAvailableException exception)
{
exception.Redirect();
}
为了测试的目的,我将我的访问令牌超时设置为 10 分钟,并注意当它到期时(并且我使用了“弹出”的默认登录模式),将获得一个新的访问令牌并且当前页面是返回。
但是,如果我将 LoginMode 更改为“重定向”而不是“弹出”并重复测试,我会在地址栏中收到以下错误消息:
...身份验证/登录失败?message=State%20mismatch%20error.%20Please%20check%20your%20network.%20Continued%20requests%20may%20cause%20cache%20overflow。
有趣的是,它似乎已经更新了访问令牌,就像在页面之间快速滑动一样,我能够检索数据。 有没有其他人遇到过这种情况或有任何想法如何解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。