带有无服务器框架的 AWS cognito
Posted
技术标签:
【中文标题】带有无服务器框架的 AWS cognito【英文标题】:AWS cognito with serverless framework 【发布时间】:2018-09-13 14:35:48 【问题描述】:我正在研究无服务器框架。对于用户身份验证,我使用的是 aws cognito,我想使用 lambda 函数为注册用户创建 api、验证用户、更改密码等。是否可以使用无服务器框架。
如果可能,请提出任何示例。
【问题讨论】:
docs.aws.amazon.com/cognito/latest/developerguide/… 请注意,Cognito 非常适合简单的应用程序,但有一些严重的限制,上次我检查您无法通过用户池中的自定义属性进行搜索。通常,大多数人会编写自己的注册/登录逻辑并发布 jwt 令牌。可以在此处找到自定义授权者的示例github.com/awslabs/aws-apigateway-lambda-authorizer-blueprints/… 【参考方案1】:我创造了它。你可以在这里找到它: https://github.com/awslabs/cognito-proxy-rest-service
顺便说一句,要问自己的问题是,当 Cognito 拥有您在前端使用它所需的一切时,为什么您需要将身份验证逻辑下推到后端?
【讨论】:
通过使用 aws cognito,如果我将身份验证逻辑写入前端,我必须完全依赖 aws,如果将来我想更改我的身份验证逻辑,那么我必须再次修改我的前端部分 你在 kotlin 中创建了 lambda fun。你在 nodejs 中也有同样的东西吗? 不,只是 Kotlin。【参考方案2】:是的,这是可能的。要实现这一点,基本上您需要在自己的 Lambda 函数中包装 Cognito API,然后在无服务器框架模板中为它们配置 http event。
【讨论】:
【参考方案3】:您应该认为 Cognito 是用于身份验证的后端即服务 (BaaS),并且它公开了使用它的 API。因此,您可以使用 AWS 开发工具包来访问这些 API。但是,您可以使用 Serverless Framework Toolkit 编写自己的 Lambda 函数(无服务器应用程序)来访问 Cognito。您可以找到有关使用 javascript SDK here 在移动或 Web 应用程序中集成 Cognito 的更多信息。此外,您还可以通过here 找到有关其他语言的 AWS SDK 的更多信息。
【讨论】:
以上是关于带有无服务器框架的 AWS cognito的主要内容,如果未能解决你的问题,请参考以下文章
通过 AWS Lambda 和 Cognito 注册用户(无服务器架构)
带有 ADFS 的 AWS Cognito:颁发者与 providerName 不匹配
Cognito 用户池作为具有客户端凭据的身份提供者仅在保存到 aws 控制台后才有效