首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >亚马逊认知标识js刷新令牌过期处理

亚马逊认知标识js刷新令牌过期处理
EN

Stack Overflow用户
提问于 2018-08-17 09:45:06
回答 1查看 2.3K关注 0票数 1

当通过get会话检索id令牌时,当访问令牌过期时,cognito标识js会自动检索带有它的刷新令牌的新访问令牌。但是,如果刷新令牌也过期了,我希望实现正确的处理,但是很难进行测试,因为刷新令牌的最小过期时间是1天。

我很高兴知道如果:

  • 还有其他方法可以正确测试访问和刷新令牌过期时发生的情况(因此我可以测试重定向到登录页面)。
  • 调用哪个代码路径或如何捕获刷新令牌过期的情况。

代码:

代码语言:javascript
复制
getIdToken(callback: Callback): void {
if (callback == null) {
  throw("callback is null");
}
if (this.getCurrentUser() != null) {
  this.getCurrentUser().getSession(function (err, session) {
    if (err) {
      console.log("error: " + err);
      callback.callbackWithParam(null);
    } else {
      if (session.isValid()) {
        console.log("returning id token");
        callback.callbackWithParam(session.getIdToken().getJwtToken());
      } else {
        console.log("got the id token, but the session isn't valid");
      }
    }
  });
  } 
  else
    callback.callbackWithParam(null);
}

我的猜测是,将调用got the id token, but the session isn't valid,因为当刷新令牌有效时,它会自动刷新访问令牌,会话再次有效。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-20 11:41:33

在登录Kibana时,我收到了以下消息:

代码语言:javascript
复制
com.amazonaws.services.cognitoidp.model.NotAuthorizedException: Refresh Token has expired (Service: AWSCognitoIdentityProvider; Status Code: 400; Error Code: NotAuthorizedException; Request ID: ...)

在这种情况下,错误分支将被调用。

代码语言:javascript
复制
if (err) {
  console.log("error: " + err);
  callback.callbackWithParam(null);
}

因此,需要在那里处理刷新令牌的过期。但是,除了session.isValid()之外,在每种情况下,我都决定将用户重定向到登录页面。

希望这能对外面的人有所帮助

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

https://stackoverflow.com/questions/51892650

复制
相关文章

相似问题

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