在`Angular`中实现`Refresh Token`

Posted

技术标签:

【中文标题】在`Angular`中实现`Refresh Token`【英文标题】:Implement `Refresh Token` in `Angular` 【发布时间】:2020-10-24 15:56:53 【问题描述】:

我正在与OAuth2JWT 一起处理Spring 安全implementation:

根据作者的说法,我可以通过这种方式使用令牌访问资源:

要访问资源使用(您需要一个不同的应用程序 已配置资源服务器):http localhost:8080/users 'Authorization: Bearer '$ACCESS_TOKEN

关于这一步:

要使用刷新令牌功能:http --form POST adminapp:password@localhost:9999/oauth/token grant_type=refresh_token refresh_token=$REFRESH_TOKEN

我不清楚何时必须刷新令牌以及如何将这部分处理到我的 Angular 应用程序中。

我是否需要实现一个计时器来不时刷新令牌,或者是否有其他方法可以实现此功能?

【问题讨论】:

【参考方案1】:

基于 Angular 的解决方案将涉及以下步骤:

在浏览器中实现 SPA 安全性 通过 iframe 静默更新令牌 在您的 API 中验证令牌

您通常不会自己实现授权服务器 - 而是使用低成本的云提供商。

值得了解HTTP Messages - 步骤 22 进行令牌刷新。

有关 SPA 和 API 的真实方法,请参阅我的Visual Tutorial + Code Sample。然后,您可以将代码调整为 Angular。

【讨论】:

我检查了链接,但我担心使用Renew tokens silently via iframes 是否有其他更好的解决方案? iframe 是 SPA 的标准,没有比这更好的了。您使用安全库并避免自己编写代码 - 这里是 some sample code of mine。 好的,我会尝试实现这个解决方案。

以上是关于在`Angular`中实现`Refresh Token`的主要内容,如果未能解决你的问题,请参考以下文章

在angular2中实现主题

如何在 Angular 8 中实现 ngInit?

在 Angular 2 中实现滑动导航的最佳方式是啥?

如何在 Angular 6 中实现 Keycloak?

如何在没有 Angular 的 Cordova 中实现 Auth0 SSO

如何在Angular 8中实现@提及自定义下拉菜单