Amplify Authentication, can I store/set user profile info?

I’m new to AWS services. I’m building a small app blog app that implements Amplify Authentication.

I got it working at a very basic level:

  • User can see posts but can’t create if not authenticated
  • User can create account, and sign in.
  • Once authenticated the user can create posts
  • The post gets associated to the user that created the post.

However I would like to work on the profile a little bit more, to get features like

  • User can upload a profile picture that gets associated with his account
  • User can provide a name, a bio, etc.
    As for right now, I don’t see that a table of users gets generated in DynamoDB or anything like that, so I don’t know how to store this authenticated user data and use it. And I can’t wrap my head around yet in how to go about it. Any suggestion, resources, tutorials, videos etc, on what route to take to achieve it is highly appreciated!

Users are managed using the Cognito service (in one way or another). You can’t really store much arbitrary information, that’s not the point of Cognito, which is a user directory service. Cognito is there to control access, that’s all.

It’s entirely up to you how to store arbitrary data. So for example, if you want to use Dynamo, then have a table where the primary key is the user id then just a column for every bit of data related to that user; you’re already doing something similar with the posts. When user has authenticated, you’ve got their ID (multiple Auth functions will give you this, and you can pull it directly out of the session token anyway), so then grab data for that user ID (via REST or GQL, whatever you’ve set up).

Re images, not in Dynamo (you’d store some ID/reference to where it is), you’d store them using S3 and access via Amplify’s Storage module

I found this video: AWS Basics for Beginners - Full Course by FreeCodeCamp