-->

AWS Cognito: Do I need other AWS service to write

2020-08-01 02:09发布

问题:

I am planning to write a mobile app with AWS handling the backend work. Like many common apps, mine will support user registration and login. All backend resources should be secure based on the user's role.

After reading AWS Cognito, it handles both Open authentication provider and Developer Authentication provider. This helps to support third party login. The capacity of syncing data is a big plus.

However, I have some questions about Cognito when I try further implementation.

  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?

All advices are welcomed.

回答1:

Update: Cognito has since added a new feature that does allow storing credentials. See Cognito User Pools for more information.

Amazon Cognito does not store credentials. Instead, it allows you to offload the task of securely storing credentials to any OpenID Connect-complaint credential provider such as, but not limited to, Facebook, Google, and Login With Amazon.

If you have a credential provider that is not OpenID Connect compliant, you can use the Developer Authenticated Identities capability to leverage another authentication system as a credential store (such as your own back-end service). Registration, email verification, and forgot password features would be handled by the Identity Provider: Either an OpenID Connect provider (e.g. Facebook) or your own provider via Developer Authenticated Identities.

Cognito's Sync capability gives you the ability to store profile information or any other information specific to the current user (referred to as "identity" in Cognito). There is a good blog post about using Cognito Sync to store & synchronize data here.



回答2:

There is now Amazon Cognito User Pools (currently in beta), allowing to store user credentials, see here