【问题标题】:How to integrate AWS Cognito Identity Pool and API Gateway in the Javascript sdk如何在 Javascript sdk 中集成 AWS Cognito 身份池和 API 网关
【发布时间】:2017-08-08 12:47:18
【问题描述】:

我想使用 Cognito 身份池保护对 API 网关的访问(目前我使用 Cognito 用户池对其进行授权,但稍后我可能会使用其他提供商,如 facebook 等)

所以来自文档here

AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId: 'YOUR_IDENTITY_POOL_ID',
  Logins: {
    'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>': 'some-user-pool-token'
  }
});
AWS.config.credentials.refresh((error) => {
    ...
}

但要使用 API Gateway(来自生成的 sdk),我需要:

accessKey: 'ACCESS_KEY',
secretKey: 'SECRET_KEY'

我的问题:

  1. 如何获取 ACCES_KEY 和 SECRET_KEY?
  2. 我需要依赖于 aws sdk 的唯一原因是,我需要调用 credentials.refresh。我可以在没有 aws sdk(并且只有 amazon-cognito-identity-js 以及生成的 api gateway sdk)的情况下以某种方式做到这一点吗?

【问题讨论】:

    标签: amazon-web-services


    【解决方案1】:

    1的答案可以在here找到。

    它是这样完成的:

    AWS.config.credentials = new AWS.CognitoIdentityCredentials({
      IdentityPoolId: 'YOUR_IDENTITY_POOL_ID',
      Logins: {
        'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>': 'some-user-pool-token'
      }
    });
    AWS.config.credentials.get(function(){
    
        // Credentials will be available when this function is called.
        var accessKeyId = AWS.config.credentials.accessKeyId;
        var secretAccessKey = AWS.config.credentials.secretAccessKey;
        var sessionToken = AWS.config.credentials.sessionToken;
    
    });
    

    所以我猜 2 的答案是:是的,还需要 AWS 开发工具包来获取凭证。

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 2018-08-31
      • 2023-03-08
      • 2017-10-25
      • 2017-03-25
      • 2017-02-28
      • 1970-01-01
      • 2016-12-29
      • 2016-09-26
      相关资源
      最近更新 更多