【问题标题】:Can I use/trust an id_token to both validate a request and extract the user's information on the server?我可以使用/信任 id_token 来验证请求并在服务器上提取用户信息吗?
【发布时间】:2018-12-29 20:44:12
【问题描述】:

我正在使用 node.js、lambda、cognito。经过身份验证的客户端在标头中发送令牌以验证请求。 lambda 函数正在使用 jsonwebtoken 包验证 JWT 签名。

我试图避免为每个请求在服务器上进行外部调用以从他们的access_token 获取用户的身份,并且我可以看到id_token 包含我需要的信息。

但是,我读到使用id_token 进行请求验证并不好。

如果我在id_token 上拨打jwt.verify(),我的想法是否正确:

1) 它通过检查签名来检查id_token 是否被篡改?

2) 验证后服务器是否可以信任id_token 的有效负载?

3) id_token 与 access_token 同时过期?

如果是这样,那么为什么不使用id_token 代替access_token 来向服务器发出请求?

或者我应该同时发送并检查两者?

【问题讨论】:

    标签: amazon-web-services aws-lambda jwt amazon-cognito


    【解决方案1】:

    回答您的问题:

    1. 是的
    2. 是的
    3. 是的

    您可以使用id_token 来验证请求。 Cognito 文档说“ID 令牌也可用于针对您的资源服务器或服务器应用程序对用户进行身份验证”

    见https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html)

    从技术上讲,id_token 用于验证身份,access_token 用于验证访问权限,但如果您愿意,可以同时使用id_token。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 2018-12-17
      • 2015-08-27
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多