AWS Cognito联合身份,用户注册和DynamoDB

时间:2018-03-13 20:23:29

标签: amazon-dynamodb amazon-cognito federated-identity amazon-cognito-facebook

我想知道是否有人可以提供帮助。对于我正在计划的Web应用程序,我正在尝试规划我需要的AWS服务以及它们如何挂在一起。

具体来说,我正在考虑使用Cognito和DynamoDB进行用户注册和登录过程。

用户需要注册并登录才能执行某些操作。我认为无服务器,所以这些操作将是API网关前面的Lambda函数。和许多网站一样,我想使用Facebook作为用户身份验证模型。我想我需要:

  • 创建Facebook应用程序
  • 使用Facebook应用程序ID配置Cognito Federated Identities
  • 让DynamoDB表包含用户信息
  • 提供允许用户使用其Facebook身份进行注册的工具
    • 注册时,在DynamoDB用户信息表中创建一条记录,其中包含用户姓名,电子邮件等,这些记录来自他们的Facebook个人资料
  • 为注册用户提供以Facebook身份登录的工具
  • 以某种方式将用户令牌(JWT令牌?)传递给后续客户端请求到API网关端点

到目前为止,我已经创建了Facebook应用并拥有应用ID。我为应用程序创建了Cognito Federated Identity,并使用我的Facebook应用程序ID进行配置。我已将API网关的方法请求的授权字段设置为“AWS_IAM”

使用Facebook javascript SDK和AWS javascript SDK,我整理了一个非常基本的页面,允许通过Facebook登录,然后使用facebook authResponse accessToken创建一个新的AWS.CognitoIdentityCredentials对象。最后,它调用AWS.config.credentials.get来获取Cognito凭据。但这并不是上面的步骤 - 它只是证明用户可以使用他们的Facebook ID登录,我可以将其传递给Cognito。

因此我的具体问题是:

  1. 我正在努力解决的是如何进行注册。一旦用户通过Facebook登录,我如何在DynamoDB中创建用户记录?
  2. 同样,当用户登录(而非注册)时,一旦用户通过Facebook登录,我如何确保他们在DynamoDB中拥有用户记录? (因为如果他们没有记录,那么可能他们没有注册)
  3. 最后,如何将用户ID /令牌从客户端传递到API网关端点?
  4. 我不是在寻找代码示例等 - 只是指示我是在思考正确的方向还是咆哮错误的树。各种组件需要挂在一起的高级别将是很好的,就像任何链接或类似概念的引用一样。

    由于

0 个答案:

没有答案