首页 > 解决方案 > 如何通过 aws sdk 全局注销 cognito 用户

问题描述

我使用 AWS Cognito。我有附加的代码来基于访问令牌全局注销用户:

var signOut = (accessToken) =>
  new Promise((resolve, reject) => {
    var params = {
      //UserPoolId: process.env.USER_POOL_ID, /* required */
      AccessToken: accessToken /* required */
    };
    var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({
      apiVersion: '2016-04-18',
      region: 'us-east-1'
    })
    console.log("Signing out user .. ");
    cognitoidentityserviceprovider.globalSignOut(params, function(err, data) {
      if (err) {
        console.log(err, err.stack); // an error occurred
        reject(err)
      } else {
        console.log(data);
        resolve(data)
      }
    });
  });

当我调用代码时,出现以下错误:

2019-08-20T14:33:29.736Z 011d65cb-ee4d-4053-9283-6e6242560c6b { NotAuthorizedException: 访问令牌已在 Request.extractError (/var/task/sign-out/node_modules/aws-sdk/lib/protocol /json.js:51:27) 在 Request.callListeners (/var/task/sign-out/node_modules/aws-sdk/lib/sequential_executor.js:106:20) 在 Request.emit (/var/task/sign -out/node_modules/aws-sdk/lib/sequential_executor.js:78:10) 在 Request.emit (/var/task/sign-out/node_modules/aws-sdk/lib/request.js:683:14) 在Request.transition (/var/task/sign-out/node_modules/aws-sdk/lib/request.js:22:10) 在 AcceptorStateMachine.runTo (/var/task/sign-out/node_modules/aws-sdk/lib /state_machine.js:14:12)在 /var/task/sign-out/node_modules/aws-sdk/lib/state_machine.js:26:10 在请求。(/var/task/sign-out/node_modules/aws-sdk/lib/request.js:38:9) 在请求。

有谁知道如何解决这个问题?

标签: amazon-web-servicesamazon-cognito

解决方案


由于您正在使用的访问令牌已被全局注销,因此引发此异常。

这意味着您已经从 cognito 中退出。

尝试使用通过登录(又名登录)API 生成的新访问令牌调用相同的函数。


推荐阅读