未捕获的ReferenceError:未定义AWSCognito-直接从SDK中,我缺少什么?

时间:2019-05-29 19:10:35

标签: amazon-web-services amazon-dynamodb undefined amazon-cognito

我一直在寻找AWS开发工具包,以使Cognito(用户身份验证)与DynamoDb(数据库)一起使用以实现细粒度的访问控制(用户池访问某些表/属性)。我似乎无法让他们的SDK正常工作。

这是我从中获得代码的地方: https://aws.amazon.com/blogs/mobile/building-fine-grained-authorization-using-amazon-cognito-user-pools-groups/

var data = {
  UserPoolId: <YOUR_USER_POOL_ID>,
  ClientId: <YOUR_USER_POOL_CLIENT_ID>,
};
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(data);
var cognitoUser = userPool.getCurrentUser();

try {
  if (cognitoUser != null) {
    cognitoUser.getSession(function(err, session) {
      if (err) {
    console.log(err);
    return;
     }

      console.log('session validity: ' + session.isValid());
      console.log('session token: ' + session.getIdToken().getJwtToken());

      AWS.config.region = '<YOUR_REGION>';
      AWS.config.credentials = new AWS.CognitoIdentityCredentials({
        IdentityPoolId : '<YOUR_IDENTITY_POOL_ID>', 
        Logins : {
          // Change the key below according to the specific region your user pool is in.
          `cognito-idp.${AWS.config.region}.amazonaws.com/${data.UserPoolId}` : session.getIdToken().getJwtToken()
        }
      });

      AWS.config.credentials.get(function(err) {
        if (!err) {
          var id = AWS.config.credentials.identityId;
          console.log('Cognito Identity ID '+ id);

      // Instantiate aws sdk service objects now that the credentials have been updated
          var docClient = new AWS.DynamoDB.DocumentClient({ region: AWS.config.region });
          var params = {
            TableName: '<YOUR_DYNAMODB_TABLE>',
            Item:{userid:id, status:<STATUS_CODE>}
          };
          docClient.put(params, function(err, data) {
            if (err) 
              console.error(err);
            else 
              console.log(data);
          });
        }
      });
    });
  } else {
    console.log(err);
    return;
  }
} catch (e) {
  console.log(e);
  return;
}

很明显,我缺少一个javascript文件。但是我找不到那个脚本在哪里。预先感谢您有任何想法。

1 个答案:

答案 0 :(得分:0)

也许this问题中的第一个答案会有所帮助。

这是代码的仓库:https://github.com/PouncingPoodle/aws-cognito-angularjs/tree/master

在index.html文件中,您将看到所有必需的脚本以及它们应位于的顺序。

希望这会有所帮助。