问题描述
考虑一个由AWS-ApiGateway和-Lambda组成的restapi后端。
在成功进行oauth2身份验证之后,AWS Cognito在代码授权授予流程中同时向客户端返回 access_token 和 id_token 。
在api调用期间,lambda函数需要知道经过身份验证的客户端的电子邮件地址,因此我基本上有2个选择:
- 在
Authorization
标头中发送 id_token ,该标头已通过ApiGateway验证并传递到Lambda。让Lambda解密 id_token 并访问其中包含的电子邮件地址。 - 在
Authorization
标头中发送 access_token ,该标头由ApiGateway使用scope=openid email
进行验证,并传递给Lambda。让Lambda使用GET
标头中的 access_token 对/oauth2/userinfo
端点进行Authorization
调用,以获得电子邮件地址。
最佳做法是哪一种?为什么?