当通过get会话检索id令牌时,当访问令牌过期时,cognito标识js会自动检索带有它的刷新令牌的新访问令牌。但是,如果刷新令牌也过期了,我希望实现正确的处理,但是很难进行测试,因为刷新令牌的最小过期时间是1天。
我很高兴知道如果:
代码:
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,因为当刷新令牌有效时,它会自动刷新访问令牌,会话再次有效。
发布于 2018-08-20 11:41:33
在登录Kibana时,我收到了以下消息:
com.amazonaws.services.cognitoidp.model.NotAuthorizedException: Refresh Token has expired (Service: AWSCognitoIdentityProvider; Status Code: 400; Error Code: NotAuthorizedException; Request ID: ...)在这种情况下,错误分支将被调用。
if (err) {
console.log("error: " + err);
callback.callbackWithParam(null);
}因此,需要在那里处理刷新令牌的过期。但是,除了session.isValid()之外,在每种情况下,我都决定将用户重定向到登录页面。
希望这能对外面的人有所帮助
https://stackoverflow.com/questions/51892650
复制相似问题