相关疑难解决方法(0)

Cognito用户池:如何使用刷新令牌刷新访问令牌

我正在使用Cognito用户池来验证系统中的用户.成功的身份验证提供ID令牌(JWT),访问令牌(JWT)和刷新令牌.这里的文档http://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html明确提到刷新令牌可以是用于刷新访问令牌,但没有提到如何.我的问题是,一旦我的访问令牌过期,我如何使用存储的刷新令牌再次刷新我的访问令牌?

我搜索了javascript sdk,找不到任何方法来做同样的事情.我绝对错过了什么.

此外,我通过Lambda函数考虑这一点,该函数接收访问令牌并刷新令牌并使用刷新的访问令牌进行响应.如果有人能对此有所启发,那将会很棒.

谢谢

amazon-web-services amazon-cognito aws-lambda

38
推荐指数
6
解决办法
3万
查看次数

如何在 AWS Cognito 中使用 refreshToken 值刷新 IdToken?

我们是否可以在一小时前强制过期并使用刷新令牌获取新的 IdToken 或如何在自动过期时间后使用此amazon-cognito-identity-js-node模块中的refreshToken 值获取新的 IdToken ?

我正进入(状态

类型错误:refreshToken.getToken 不是错误函数。

我使用此代码如下:

cognitoUser.refreshSession(refreshToken, (err, session) => {
                          if (err) {//throw err;
                            console.log('In the err'+err);
                          }
                          else{
                            console.log('session '+session);
                          }
                    }); 
Run Code Online (Sandbox Code Playgroud)

refreshToken在函数中传递正确的值。在 CognitoUser.js 文件中的函数

refreshSession(refreshToken, callback)
{
  const authParameters = {};
  authParameters.REFRESH_TOKEN = refreshToken.getToken(); /* Here I am getting error*/
  ...
  ....
}
Run Code Online (Sandbox Code Playgroud)

在情况下,如果我的替换功能第二线refreshSession()

authParameters.REFRESH_TOKEN = this.signInUserSession.getRefreshToken().getToken();
Run Code Online (Sandbox Code Playgroud)

然后错误消失了。

我尝试使用以下代码:

 var poolData = {
        UserPoolId: 'xx-xxx-x_xxxxx',
        ClientId: 'xxxxx',
        AuthFlow: 'xxxxx'
     };

     userPool = new AWS.CognitoIdentityServiceProvider.CognitoUserPool(poolData);


if(minuteDiff >= 60) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js amazon-cognito aws-sdk

2
推荐指数
1
解决办法
1万
查看次数