如何将Cognito令牌传递给Amazon API Gateway?

itu*_*lga 12 amazon-web-services amazon-cognito

我正在开发基于Amazon API Gateway的Web应用程序.现在我创建了Facebook登录并成功登录网站.但当我打电话给另一个API时,一切都消失了.我想我应该在每次调用API时传递Cognito令牌.我对吗?

如果是,如何将Cognito令牌传递给API?喜欢标题?或另一种方式?

谢谢,

Mar*_*rio 16

您正在使用来自cognito身份的"基本Authflow",这意味着您需要通过调用STS的"AssumeRoleWithWebIdentity"来获取用户的凭据.以下是一些有用的文档:http: //docs.aws.amazon.com/cognito/devguide/identity/concepts/authentication-flow/

获得凭据后,您可以实例化API网关客户端:

var client = apigClientFactory.newClient({ 
    accessKey: ACCESS_KEY, 
    secretKey: SECRET_KEY, 
    sessionToken: SESSION_TOKEN });
Run Code Online (Sandbox Code Playgroud)

密钥和令牌来自"AssumeRoleWithWebIdentity"调用的结果.

如果您已正确配置了IAM角色和授权,则应该能够访问您的API.

以下是描述如何配置角色和授权的文档:http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings.html#how-to-method-settings-callers -安慰

此外,这里是如何启用CORS - http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html