我正在开发基于Amazon API Gateway的Web应用程序。现在我创建了Facebook登录并成功登录网站。但当我打电话给另一个API时,一切都消失了。我想我应该在每次调用API时传递Cognito令牌。我对吗?
如果是,如何将Cognito令牌传递给API?喜欢标题?或另一种方式?
谢谢,
我正在开发基于Amazon API Gateway的Web应用程序。现在我创建了Facebook登录并成功登录网站。但当我打电话给另一个API时,一切都消失了。我想我应该在每次调用API时传递Cognito令牌。我对吗?
如果是,如何将Cognito令牌传递给API?喜欢标题?或另一种方式?
谢谢,
您正在使用来自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 });
密钥和令牌来自“AssumeRoleWithWebIdentity”调用的结果。
如果您已正确配置了IAM角色和授权,则应该能够访问您的API。
以下是描述如何配置角色和授权的文档: http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings.html#how-to-method-settings-callers-console
另外,这里是如何启用CORS - http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html