我相对较新的AWS,但阅读了大量的文档,无法找到我需要的东西。
我正在尝试实施用户付费订阅的身份验证,并根据他们是否已付款,他们可以访问S3存储桶和项目。
我尝试将API网关与Cognito授权程序一起使用,但我不知道如果用户付费(例如在DynamoDB中查找),如何添加检查。有没有办法向Cognito授权人添加自定义授权逻辑?如果没有,是否仍然可以将Cognito用户池与自定义授权器一起使用?最重要的是,你将如何实现整个事情?
我愿意接受建议。
答案 0 :(得分:2)
我找到了我要找的东西。
我添加了自定义用户属性subscribed
。然后,使用blueprint for custom authorizer for Amazon Cognito User Pools创建了一个lambda函数,我将其用作自定义授权程序。我修改了代码,以便我也提取自定义属性subscribed
(前缀为custom:
,因此它变为custom:subscribed
)并检查它是否设置为true。我将蓝图上传到lambda函数并将其设置为我需要的端点和方法的授权者。
为了更新我使用CognitoIdentityServiceProvider. adminUpdateUserAttributes的标志,我在用户成功付款后调用lambda中的自定义位置(或删除cron jobs订阅以检查它是否有效)。
文章:
https://aws.amazon.com/blogs/mobile/integrating-amazon-cognito-user-pools-with-api-gateway/ https://aws.amazon.com/blogs/compute/author/