2

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

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

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

  • 创建 Facebook 应用程序
  • 使用 Facebook 应用程序 ID 配置 Cognito 联合身份
  • 让 DynamoDB 表包含用户信息
  • 提供允许用户使用其 Facebook 身份进行注册的设施
    • 注册时,在 DynamoDB 用户信息表中创建一条记录,其中包含从 Facebook 个人资料中获取的用户名、电子邮件等
  • 为注册用户提供使用其 Facebook 身份登录的便利
  • 以某种方式将后续客户端请求中的用户令牌(JWT 令牌?)传递给 API 网关端点

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

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

因此,我的具体问题是:

  1. 我正在努力解决的是如何进行注册。用户通过 Facebook 登录后,如何在 DynamoDB 中创建用户记录?
  2. 同样,当用户登录(而不是注册)时,一旦用户通过 Facebook 登录,我如何确保他们在 DynamoDB 中有用户记录?(因为如果他们没有记录,那么大概他们没有注册)
  3. 最后,如何将用户 ID/令牌从客户端传递到 API 网关端点?

我不是在寻找代码示例等 - 只是关于我是在思考正确的路线还是在寻找错误的树的指针。各种组件需要如何连接在一起的高水平将是很好的,任何链接或对类似概念的引用也是如此。

谢谢

4

0 回答 0