Javascript AWS Cognito-登录后立即使用刷新令牌

Javascript AWS Cognito-登录后立即使用刷新令牌,javascript,amazon-cognito,refresh-token,Javascript,Amazon Cognito,Refresh Token,我想强制刷新客户端中的AWS cognito令牌,以便用户登录应用程序后立即使用刷新令牌获取新的访问令牌(exp时间更长)。我已经读过和cognitoUser.refreshSession()方法,但我不确定我需要使用哪一个?我正在尝试下面的方法,我得到了一个新的令牌回来,但它总是只在1个多小时内有效(至少这是我在检查令牌上的exp-time时看到的)。我想得到一个有效期为30天的令牌(这是我在cognito中配置的)。任何帮助都将不胜感激 const getTokens=函数(会话){ 返

我想强制刷新客户端中的AWS cognito令牌,以便用户登录应用程序后立即使用刷新令牌获取新的访问令牌(exp时间更长)。我已经读过和cognitoUser.refreshSession()方法,但我不确定我需要使用哪一个?我正在尝试下面的方法,我得到了一个新的令牌回来,但它总是只在1个多小时内有效(至少这是我在检查令牌上的exp-time时看到的)。我想得到一个有效期为30天的令牌(这是我在cognito中配置的)。任何帮助都将不胜感激


const getTokens=函数(会话){
返回{
accessToken:session.getAccessToken(),
idToken:session.getIdToken(),
refreshToken:session.getRefreshToken()
};
cognitoUser.refreshSession(refreshToken,(err,session)=>{
如果(错误){
控制台日志(err);
}否则{
const tokens=getTokens(会话);
console.log(令牌);
setItem(“sessionTokens”,JSON.stringify(tokens));
}
}
Cognito中的ID和访问令牌有效期为1小时,这是不可配置的。您提到您已将令牌配置为持续30天,这是刷新令牌的有效期/到期时间。 在客户端SDK(Amplify或identity SDK)上调用某些方法将自动检查令牌的有效性和过期时间,并在需要时刷新它们

这一点现在已经发生了变化,如下所示:

Cognito最近添加了配置令牌有效性的选项

  • 刷新令牌的TTL从60分钟到365天不等
  • ID令牌和访问令牌可以有5分钟到1天的TTL
只需查看用户池应用程序客户端的详细信息,新字段就在那里,便于配置