将令牌从 AWS Cognito 交换到 AWS API 网关

Exchange token from AWS Cognito to AWS API Gateway

我正在准备我的学位论文(侧重于云计算),所以我是一名学生而不是专家,如果问题看起来很愚蠢,我深表歉意。

我正在构建基于 NodeJS 和 Javascript(back-end 和 front-end)的无服务器架构。 我想通过 AWS Cognito 管理用户。 我已经配置了我的用户池和 GUI,以便注册用户或允许用户使用像 Facebook 或 Google(auth login)这样的身份提供者。

我被卡住了,因为在用户点击 Facebook 登录后,我能够在我的回调页面中检索令牌(它看起来像 xxxx-xxxx-xxxx-xxxx)但是如果我尝试将该令牌用作 "Authorization" 在 header 中访问 API(AWS API 网关)我收到了未经授权的请求。

我知道我需要将此令牌与有效的 AWS 身份令牌交换,但我无法理解如何使用 AWS JS SDK 在 JS 中执行此操作。

我在网上找到了几个使用用户名和密码的示例,但如果我没有这些数据,只有来自 Facebook 或 Google 的令牌,我该如何获取 AWS 身份令牌?

如果有人能帮助我,我将不胜感激!

如果您想通过 Amazon Web Services 使用 Facebook 和 Google,您应该了解 Amazon Cognito Federated Identities

Amazon Cognito 联合身份使您能够创建唯一身份并为用户分配权限。您的身份池可以包括:

  • A​​mazon Cognito 用户池中的用户
  • 使用联合身份提供者进行身份验证的用户,例如 Facebook、Google 或基于 SAML 的身份提供商
  • 通过您自己现有的身份验证过程进行身份验证的用户

我放弃了:(

我用 google Firebase 在不到 1 小时的时间内完成了所有操作(托管 + 身份验证 + 无服务器功能 + 数据库)。

浪费了 4 天时间试图弄清楚如何连接所有 AWS 服务,但没有成功。

如果您正在寻找快速且完整的无服务器解决方案,我建议您看看 Google Firebase。