1

In my app I want users to sign themselves up/in (through user pool I created) or through facebook. I have done this first approach and looking at facebook authentication now. Basically, I retrieve user info such as name, email, gender etc but I also want them to fill in missing information such as DOB, location or later on, if they wish, they should be able to modify those attributes. How can I achieve this ? Should I have a DynamoDB table and populate it with those attributes and let them modify it later ? Thanks for advice.

Dodi
  • 2,201
  • 4
  • 30
  • 39

3 Answers3

1

In addition to David's answer, you could use Cognito Sync to store each of those attributes as a record within a single dataset. Since you mentioned you have a Facebook provider linked, those'll be accessible cross devices and only visible to the owning user.

Dynamo is also a totally viable option, you could use Cognito's IAM permissions to make sure users can only see/update their own rows.

Jeff Bailey
  • 5,655
  • 1
  • 22
  • 30
  • I also want to display a list of users lets say from a certain location with certain age etc. Would it be possible with Cognito Sync since you mentioned attributes are visible only to the owning user ? – Dodi Apr 18 '17 at 10:09
  • With cross user stuff, you can't. You'd have to use something like dynamo – Jeff Bailey Apr 18 '17 at 15:03
1

We added support for Federation through Facebook, Google and LoginWithAmazon for User Pools. This will create a user in user pool when a user logs in with federation. You can also capture the attributes from Facebook using the attribute mapping feature.

Rachit Dhall
  • 1,601
  • 11
  • 12
0

I would suggest aws cognito to help track the user attributes as you have e described https://aws.amazon.com/cognito/ it has a lot of those attributes built in and also allows you to create custom attributes.

David Gildea
  • 153
  • 1
  • 7