【发布时间】:2018-12-05 10:06:23
【问题描述】:
我正在使用 Congnito 用户池来执行 API 网关授权,它工作正常。现在,我正在尝试将 Instagram 添加为登录提供程序之一,为此我在 Federated Identities 中创建了 Custom Authentication Provider 并使用以下代码:
var cognitoidentity = new AWS.CognitoIdentity({ apiVersion: '2014-06-30' });
var params = {
IdentityPoolId: 'us-east-1:7d99e750-.....',
Logins: {
'login.instagram': 'Access-Token-Returned-By-Instagram',
},
TokenDuration: 60
};
cognitoidentity.getOpenIdTokenForDeveloperIdentity(params, function (err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
var idParams = {
IdentityId: data['IdentityId'],
Logins: {
'cognito-identity.amazonaws.com': data['Token']
}
};
cognitoidentity.getCredentialsForIdentity(idParams, function (err2, data2) {
if (err2) console.log(err2, err2.stack); // an error occurred
else console.log(data2); // successful response
});
}
});
我能够获得 accessToken 和 sessionToken,但是我仍然无法找到获得 idToken 和 的方法accessToken 是 API Gateway 对传入请求进行授权所需的。
我尝试查看 SDK 以及 AWS 论坛,但我仍然无法找到一种方法来使用自定义联合身份提供商来授权使用认知用户池的 API 网关。
【问题讨论】:
标签: amazon-web-services amazon-cognito aws-cognito aws-sdk-js