为什么id_token通过url传递,带有片段标识符而不是查询字符串?

时间:2017-09-14 08:56:36

标签: jwt openid github-api yahoo-api

在openid身份验证之后,id_token(jwt)通过URI片段而不是查询字符串传递给客户端,这使得服务器无法读取。什么是这背后的真正座右铭。这是什么好处

2 个答案:

答案 0 :(得分:3)

在加载URL之前,片段应该被用户代理(例如浏览器)剥离,因此片段不会在服务器端日志中结束。

应该意识到,最近浏览器实现的变化使得上述假设成为可疑问题,并且依赖授权代码流可能更安全。

答案 1 :(得分:2)

刚刚经历了同样的好奇心并找到了答案:

根据specs

  

返回片段中的id_token可降低id_token在传输过程中泄漏的可能性,并减轻与用户隐私相关的风险(资源所有者)。

您可以通过添加 response_mode = query 来获取查询字符串,但不建议这样做。这就是授权代码流程。