AWS Cognito:我是否需要其他 AWS 服务来编写功能齐全的 signup/signin 系统?

AWS Cognito: Do I need other AWS service to write a full functioning signup/signin system?

我打算用 AWS 编写一个移动应用程序来处理后端工作。像许多常见的应用程序一样,我的将支持用户注册和登录。所有后端资源都应该基于用户的角色是安全的。

阅读 AWS Cognito 后,它同时处理开放式身份验证提供程序和开发人员身份验证提供程序。这有助于支持第三方登录。同步数据的能力是一大优势。

但是,当我尝试进一步实施时,我对 Cognito 有一些疑问。

  1. What are the user credentials stored?
  2. I need to add more user attributes (eg. email, profile image etc.) when a new user is created. Can Cognito handle this? Or do I need to use storage like S3 to store the entire user profile?
  3. Does Cognito support email verification for user registration?
  4. Does Cognito handle 'forgot password' feature?

欢迎大家提出建议。

更新:Cognito 此后添加了一项允许存储凭据的新功能。有关详细信息,请参阅 Cognito User Pools

Amazon Cognito 不存储凭据。相反,它允许您将安全存储凭据的任务卸载给任何 OpenID Connect 投诉凭据提供者,例如但不限于 Facebook、Google 和 Login With Amazon。

如果您有不符合 OpenID Connect 标准的凭据提供程序,您可以use the Developer Authenticated Identities capability to leverage another authentication system as a credential store(例如您自己的后端服务)。注册、电子邮件验证和忘记密码功能将由身份提供者处理:OpenID Connect 提供者(例如 Facebook)或您自己的提供者通过 Developer Authenticated Identities。

Cognito 的同步功能使您能够存储个人资料信息或任何其他特定于当前用户的信息(在 Cognito 中称为 "identity")。有一篇关于 using Cognito Sync to store & synchronize data here 的好博客 post。

现在有 Amazon Cognito 用户池(目前处于测试阶段),允许存储用户凭证,请参阅 here