解码JWT(id_token)的正确方法是什么?

时间:2016-03-04 12:29:15

标签: azure openid jwt yahoo-api outlook-restapi

在引用JWT(id_token) decoding docs

之后

我很困惑主要服务提供商是否会采用相同的技术......

git project getUserEmailFromIdToken()函数中的Microsoft oauth2.0客户端未根据大小填充额外的=个符号,例如$extrapadds = $jwtTokenSize % 4;

和Yahoo OAuth2.0 openid id_token docs在任何地方都没有提及。甚至基本字符串都不能替代" - "和" _" as" +"和" /"

是因为这些服务提供商(微软和雅虎)没有遵循标准,或者他们以某种方式找到了避免这种情况的方法

请澄清我......并在可能的情况下分享代码,解释解码JWT的正确方法id_token

1 个答案:

答案 0 :(得分:1)

要在base64url编码的令牌(这是JWT)上使用base64解码器,实际上并不需要填充,只需按规范推荐;见Why does base64 encoding requires padding if the input length is not divisible by 3?

另外:解码器实现可能能够自己处理填充。

雅虎文档确实是错误的,因为base64编码与base64url编码不同,规范指示base64url:https://tools.ietf.org/html/rfc7519#section-3雅虎不是真正的OPenID Connect提供商(还)因此可能就是为什么它不是在Yahoo Oauth2/OpenIDconnect

之前修复