我有SPA开发的应用程序,我用来实现Oidc的OAUTH认证和以下是澄清。
请帮忙并提出建议。
发布于 2020-08-25 19:47:04
静默刷新
我个人的首选不是单独的HTML页面,而是通过对index.html页面的无声令牌更新响应来处理这个问题。然后编写如下代码:
if (window.top === window.self) {
// Run the main app
const app = new App();
app.execute();
} else {
// If our SPA is running on an iframe, handle token renewal responses
const app = new IFrameApp();
app.execute();
}我发现这种方法避免了增加WebPack / build系统的复杂性。除了接收无声的令牌更新响应外,iframe应用程序的代码只做了很少的事情。
到期
有趣的是,为什么要直接使用访问令牌过期时间。您可以得到这样的值:
const user = await this._userManager.getUser();
if (user) {
console.log(user.expires_at);
}这里真正的要求是确保当API调用由于过期的访问令牌而失败时,避免为最终用户提供错误。这最好通过以下操作来处理:
因此,调用API的方式应该有一个带有某种重试逻辑的助手类,如我的示例这里所示。
发布于 2021-07-14 06:47:57
若要在静默刷新后得到通知,请为userLoaded: UserManager.events.addUserLoaded添加一个事件处理程序。这将传递具有新过期时间的新用户。
https://stackoverflow.com/questions/63584095
复制相似问题