我想使用Cognito Federated Entity(允许通过Google登录等),允许访问用于web javascript应用程序的API Gateway。 我设法通过与Google签约获得了Cognito的sessionToken,但我仍然坚持使用API网关配置来启用会话令牌。
这个整个联合实体身份验证工作流程是否有一个很好的教程?
谢谢!
答案 0 :(得分:14)
由于您希望通过经过身份验证的Cognito身份调用API,首先
您需要在使用“IAM”身份验证时签署请求,此处说明https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html
您可以从API网关的舞台面板生成并下载SDK,而不是#3,并通过sdk调用api。
获得认知会话后,您可以使用下面的sdk拨打电话
var apigClient = apigClientFactory.newClient({
accessKey: AWSCognito.config.credentials.accessKeyId,
secretKey: AWSCognito.config.credentials.secretAccessKey,
sessionToken: AWSCognito.config.credentials.sessionToken
});
var params = {
// This is where any modeled request parameters should be added.
// The key is the parameter name, as it is defined in the API in API Gateway.
};
var body = {};
var additionalParams = {
// If there are any unmodeled query parameters or headers that must be
// sent with the request, add them here.
headers: {
'Content-Type': 'application/json'
},
queryParams: {}
};
apigClient.<resource><Method>(params, body, additionalParams)
.then(function(result) {
//
}).catch(function(err) {
//
});