【发布时间】:2020-05-04 11:43:48
【问题描述】:
我一直在使用 AWS API Gateway、Lambda 和无服务器框架构建无服务器 REST API。我想建立一个用户注册的网站,选择一个 API 计划(免费、基本、专业)并获得相应的长期 API 密钥,他们可以使用它每月查询一定次数的无服务器 API。
我了解,使用 Cognito 和自托管 UI,您可以使用 CUP(Cognito 用户池)令牌轻松处理用户身份验证,这实际上是 Json Web 令牌。我想自动创建 API 密钥并将其关联到使用计划,然后关联到 Cognito 用户。
第一部分很简单:使用 AWS Javascript SDK,就这么简单:
var params = {
keyId: 'whateverKeyId', /* required */
keyType: 'API_KEY', /* required */
usagePlanId: 'whateverUsagePlanId' /* required */
};
apigateway.createUsagePlanKey(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
我正在为第二部分苦苦挣扎...我应该将 API 密钥作为自定义属性添加到用户池吗?但是,我真的不知道如何检索 API 密钥。 documentation 不是很清楚。注册后将用户和 API Key 添加到我自己的 DynamoDB 数据库中(这真的是对 Cognito 的浪费)?
说实话,这看起来很常见,而且我花了三天时间在互联网上寻找解决方案但没有成功,这让我觉得有些东西我不明白......
提前感谢您的意见!
【问题讨论】:
-
你好凯文,你有没有设法解决它?我现在正在努力解决同样的问题。我们如何为 Cognito 用户授予 API 密钥并在以后使用它?谢谢。
-
不幸的是,我最终手动构建了集成...很抱歉我帮不了你。
标签: amazon-web-services aws-lambda amazon-cognito api-key