我正在探索AWS堆栈,因此构建了一个简单的Web应用程序 . 我计划使用:

  • S3承载静态内容

  • DynamoDB用于存储用户数据

  • 用于后端逻辑的Lambda API网关

  • Cognito联合身份验证用户身份

我目前有一个小型跟踪子弹应用程序,允许用户通过Google(通过Cognito)进行身份验证,并通过DynamoDB中的Lambda检索一些数据 . 现在我想扩展它 .

我想做的下一件事(我未能实现)是实际存储经过身份验证的用户的用户名和电子邮件 . 存储它应该不是一个大问题,但检索它是 . 我知道我最初从谷歌获得了数据,因为当我检查我从谷歌获得的ID令牌(在JWT.io上)时,我可以清楚地看到我的电子邮件和名字 . 这是我发送给AWS Cognito以换取Cognito令牌的令牌 .

我希望能够在我的Lambda函数中再次访问这些数据,但我无法弄清楚实际情况 . 我理解Cognito对检索到的ID令牌执行单向散列,但我希望有一些选项可以从令牌中实际检索相关的用户数据 . 毕竟,通过谷歌(或任何其他IdP)的身份验证,用户已经同意共享一些个人数据 .

我觉得我没有看到明显的东西 . AWS中是否有任何功能可以解决这个问题?是否有一个时刻(不是在客户端)我可以检查ID令牌并用它做一些魔术?或者我应该以某种不同的方式解决这个问题?

如果是后者,那么首选方式是什么?我不希望用户告诉我他们的个人数据,因为那时我还需要一些方法来验证它 .