调用Azure AD B2C的token API时遇AADB2C90090错误:JWE无效
解决Azure AD B2C刷新令牌时的AADB2C90090错误
错误原因
你遇到的AADB2C90090: The provided JWE is not a valid 5 segment token错误,核心问题是调用/token接口时传入的code参数值无效——你把混合流返回的整个查询字符串片段当成了授权码,而非单独提取code的取值。
观察你Postman请求里的code参数,末尾带有%26id_token%3D...(URL编码后的&id_token=...),说明你将浏览器跳转后URL里的code=xxx&id_token=yyy完整内容都赋值给了code参数,导致传入的不是标准5段JWE格式的授权码。
修复步骤
正确提取授权码:
使用response_type=code+id_token混合流完成授权后,浏览器会跳转到指定的redirect_uri,地址栏查询参数类似:https://jwt.ms?code=真实授权码&id_token=xxx&...你需要单独提取
code后的纯授权码字符串,不要包含&id_token=xxx及后续内容。修正/token接口请求:
确保Postman中的code参数仅传入提取到的纯授权码,移除后面拼接的&id_token=...部分。修正后的grant_type=authorization_code请求体示例:grant_type=authorization_code&client_id=7adbb5f8-17d2-4dfa-94cd-5ab1cbc9f425&code=真实的5段JWE格式授权码&client_secret=h888Q~Jlg97L2ngl6GHpaKqS6FmkLygeTVY7Eb-h&redirect_uri=https://jwt.ms注意:此处
redirect_uri必须与授权请求中的redirect_uri完全一致,否则会触发其他错误。
额外注意点
- 混合流中,
id_token会直接在授权返回中获取,无需通过/token接口重复获取;调用/token接口主要用于获取access_token,刷新令牌时则使用refresh_token。 - 授权码为一次性有效,使用后即失效,若需重试需重新发起授权流程获取新授权码。
内容的提问来源于stack exchange,提问作者Benny
相关产品推荐
相关产品推荐

