"缺少身份验证令牌"使用AWS apigclient时(带凭据)

时间:2016-04-29 15:01:07

标签: javascript amazon-web-services aws-lambda

更新 我通过删除旧池并创建一个新池来解决这个问题。我认为问题最终是错误配置的认知角色。它现在按预期工作。

在尝试通过API网关访问受保护的lambda(授权:AWS_IAM)时,我遇到了API网关客户端(Javascript /浏览器)的一些问题。

问题是我不断获得"缺少身份验证令牌"通过apiClient为我的API网关调用资源时。

我遵循"增强流程"在开发人员身份验证身份Authflow参考:http://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html?shortFooter=true

是否有可能保护这样的lambdas,或者我是否必须为我的案件使用授权人?我的印象是,来自cognito的临时凭证可以在一段时间内用作IAM,但它可以解释很多。我有一个授权人员计划以后 - 保护其他资源。

对lambda的实际调用是这样的:

  var params = {};

  var body = {
    message: vm.message
  };

  var additionalParams = {
    headers: {},
    queryParams: {}
  };

  var apiClient = apigClientFactory.newClient( {
    accessKey    : data.awstoken.AccessKeyId,
    secretKey    : data.awstoken.SecretAccessKey,
    sessionToken : data.awstoken.SessionToken,
    region       : Config.aws.region
  });

  apiClient.testEchoPost( params, body, additionalParams )
    .then( function ( result ) {
      console.info( 'TEST_RESULT', result );
    })
    .catch( function ( error ) {
      console.error( 'dang', error );
    });
}

1 个答案:

答案 0 :(得分:0)

忘了正确回答。我不得不重新创建池(可能已经修复了角色),然后事情被唤醒了,我可以使用AWS_IAM来保护资源。