首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在角应用程序中刷新AWS认知会话的最佳方法是什么?

在角应用程序中刷新AWS认知会话的最佳方法是什么?
EN

Stack Overflow用户
提问于 2019-08-08 23:22:15
回答 1查看 1.6K关注 0票数 1

我正在使用AWS认知来验证应用程序的用户身份。我希望每小时自动刷新会话,而不需要用户再次登录。我目前的解决方案是节省上次登录后的时间,并根据当前的时间进行检查,以决定何时从js库调用refreshSession函数。

我的问题是,这是否是最好的方法。节省登录时间是最佳实践吗?

登录时,认知用户会话id令牌有效负载具有以下属性:

代码语言:javascript
复制
auth_time: 1565305136
exp: 1565308736
iat: 1565305137

我找不到关于这些值代表什么,或者它们是否可以用来检查当前会话过期时间的任何信息。还有一个cognitoUser.getSession.isValid函数,它依赖于一个也能工作的认知回调。我不想使用这种方法,因为我需要在每个请求的头中设置访问令牌,这是目前在角拦截器类中完成的。在每个请求中使用异步回调似乎是个坏主意,因为我们可以在将异步回调存储到本地存储后自己检查时间。

另一个问题是,是否有一种放大的方法来做到这一点。我的理解是,包括CLI函数在内的扩容也在引擎盖下使用亚马逊-认知-标识-js。然而,我们还没有使用放大器。我们的实现基于演示角科尼图应用程序

然而,可能有一种更流行的方法来做到这一点,例如,只是设置某种类型的标志与放大器。

任何帮助澄清的最佳实践自动认知会议刷新将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-08-09 03:20:44

分享我们的方法给你,这是很好的工作在一些角度的项目。

  • 在认知侧设置,刷新令牌到期365天的aws认知客户端设置。
  • 在角度上,在AppComponent(入口点)中,尝试通过现有的刷新令牌进行身份验证。如果本地存储区没有刷新令牌,或者现有刷新令牌无法使用,请转到登录页。另外,在AppComponentadd中,一个间隔将在app加载后每隔30分钟发出一次。这将作为cron作业工作,它将通过本地存储刷新令牌为新令牌调用localstorage。因此,每30分钟后,应用程序加载,新的令牌将保存在本地存储。

代码语言:javascript
复制
export class AppComponent {
  ngOnInit() {
    const s = interval(interval_in_mili_sec);
    s.subscribe(value => {
      // call id token API
    });
  }
  
}

希望这能帮到你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57421775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档