【发布时间】:2017-01-29 14:03:12
【问题描述】:
我的设置包括一个带有 IAM 访问控制的 AWS API 网关和用于登录的 AWS cognito。 我已经从一个 Android 应用程序访问了 API,现在想构建一个网络应用程序 (angular2) 来做同样的事情。 在 Android 上,我使用 AWSCognitoCredentialsProvider 为 API SDK 提供所需的凭据。 (http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-generate-sdk.html)
不幸的是,我不知道如何/如果我可以使用 javascript SDK 做到这一点?
我使用 cognito 登录并获取会话 ID、访问令牌等没有问题。但是,API SDK 要求我提供 accessKey 和 secretKey。
这是生成的 API SDK 中的相关代码 sn-p:
var authType = 'NONE';
if (sigV4ClientConfig.accessKey !== undefined && sigV4ClientConfig.accessKey !== '' && sigV4ClientConfig.secretKey !== undefined && sigV4ClientConfig.secretKey !== '') {
authType = 'AWS_IAM';
}
换句话说,我有这部分工作(来自一些示例代码):
static authenticate(username:string, password:string, callback:CognitoCallback) {
AWSCognito.config.update({accessKeyId: 'anything', secretAccessKey: 'anything'})
let authenticationData = {
Username: username,
Password: password,
};
let authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData);
let userData = {
Username: username,
Pool: CognitoUtil.getUserPool()
};
console.log("Authenticating the user");
let cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData);
console.log(AWS.config);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
callback.cognitoCallback(null, result);
},
onFailure: function (err) {
callback.cognitoCallback(err.message, null);
},
});
}
现在我想用这个:
this.apigClient = apigClientFactory.newClient({
accessKey: "anything",
secretAccessKey: "anything",
sessionToken: "nothing",
region: 'eu-central-1'
如何从我的 AWSCognito 中获取 accessKey、secretAccessKey 和 sessionToken?我找不到那个so far...的任何API
【问题讨论】:
标签: javascript amazon-web-services aws-sdk aws-api-gateway