相关疑难解决方法(0)

如何恢复过期的令牌[AWS Cognito]?

我在我的网站上使用AWS.1小时后,令牌过期,用户几乎无法做任何事情.

现在我正在尝试刷新这样的凭据:

 function getTokens(session) {
   return {
     accessToken: session.getAccessToken().getJwtToken(),
     idToken: session.getIdToken().getJwtToken(),
     refreshToken: session.getRefreshToken().getToken()
   };
 };


function getCognitoIdentityCredentials(tokens) {
  const loginInfo = {};
  loginInfo[`cognito-idp.eu-central-1.amazonaws.com/eu-central-1_XXX`] = tokens.idToken;
  const params = {
    IdentityPoolId: AWSConfiguration.IdPoolId
    Logins: loginInfo
  };
  return new AWS.CognitoIdentityCredentials(params);
 };


 if(AWS.config.credentials.needsRefresh()) {
    clearInterval(messwerte_updaten);
    cognitoUser.refreshSession(cognitoUser.signInUserSession.refreshToken, (err, session) => {
      if (err) {
        console.log(err);
      }
      else {
        var tokens = getTokens(session);

        AWS.config.credentials = getCognitoIdentityCredentials(tokens);

        AWS.config.credentials.get(function (err) {
          if (err) {
            console.log(err);
          }
          else {
            callLambda();
          }
       });
     }
   });
 }
Run Code Online (Sandbox Code Playgroud)

事情是,1小时后,登录令牌得到刷新而没有问题,但是2小时后我再也无法刷新登录令牌了.

我也尝试过使用AWS.config.credentials.get(), …

javascript amazon-web-services amazon-cognito

11
推荐指数
2
解决办法
2479
查看次数

iOS Swift,AWS Cognito用户池,无法刷新访问令牌

看过类似的SO问题,这些问题没有帮助我解决问题。

我在我们的iOS应用中使用AWS Cognito用户池。我们能够成功创建并登录用户。但是大约一小时后访问令牌不可用,我从AWS Cognito文档中了解到iOS SDK自动刷新(也在此处提到)并在不可用时获取令牌,但是我看不到这种行为。以下代码显示了我如何尝试获取访问令牌。

使用iOS SDK AWSCognitoIdentityProvider 2.6.7

请建议我如何解决该问题。

let mySession = self.pool.currentUser()?.getSession()

guard let accessToken = mySession?.result?.accessToken?.tokenString as? String else {
  print("Unable to obtain access token")
  self.handleSignOut() // Signing out the user since there is no access token       
  return
}
Run Code Online (Sandbox Code Playgroud)

swift swift3 aws-cognito

5
推荐指数
1
解决办法
2047
查看次数