【问题标题】:How do I use Cognito with the generated Javascript SDK?如何将 Cognito 与生成的 Javascript SDK 一起使用?
【发布时间】:2016-04-19 20:35:25
【问题描述】:

我找不到任何说明如何执行此操作的文档,所以我尽力弄清楚(这不是常见的用例吗)?我已经设置了我的资源以使用 IAM 身份验证、设置 CORS 等。然后我部署了它,并下载了生成的 SDK。

在客户端,我使用来自 AWS.CognitoIdentityCredentials 的凭证和 apigClientFactory.newClient。当我尝试发布到我的资源时,我收到没有正文的 403 错误响应。

响应头包含:x-amz-ErrorType: UnrecognizedClientException

此错误是否可能来自其他 AWS 服务(它们会像那样冒泡)吗?如果是这样,我怎么知道是哪一个?还有什么可能导致错误?

我正在使用测试测试客户端的代码如下所示:

function onFacebookLogin(fbtoken) {
  // get cognito credentials
  AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'us-east-1:abcd6789-1234-567a-b123-12ab34cd56ef',
    Logins: {'graph.facebook.com': fbtoken}
  });
  AWS.config.credentials.get(function(err) {
    if (err) {return console.error('Credentials error: ', err);}

    /* I'm assuming that this is what I use for accessKey and secretKey */
    var credentials = AWS.config.credentials;
    apigClient = apigClientFactory.newClient({
      accessKey: credentials.accessKeyId,
      secretKey: credentials.secretAccessKey
    });
  });
}

【问题讨论】:

    标签: javascript amazon-web-services amazon-cognito aws-api-gateway aws-lambda


    【解决方案1】:

    我认为可能发生的情况是您没有使用访问密钥和密钥设置 sessionToken 字段。您可以尝试将其设置为如下例所示,看看是否可行?

    var 客户端 = apigClientFactory.newClient({ 访问密钥:ACCESS_KEY, 密钥:SECRET_KEY, sessionToken:SESSION_TOKEN });

    This 上一个问题有更多细节,如果需要的话。

    【讨论】:

    • 是的,它是 sessionToken。它总是一些平凡的细节:-)
    【解决方案2】:

    是的,我认为 sessionToken 是必需的。

    这是一个使用 cognito 未经身份验证的身份的基本示例:https://github.com/rpgreen/aws-recipes/blob/master/app/index.html

    【讨论】:

      猜你喜欢
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 2018-10-27
      • 2015-01-07
      相关资源
      最近更新 更多