You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure AD OAuth隐式流调用token接口报错AADSTS90014求助

排查AADSTS90014 - Invalid Request错误的实用思路

先给你提个关键的小误区:你说用的是OAuth隐式流,但隐式流的逻辑是直接从/authorize端点返回Token,根本不需要调用/token接口——这很可能是你踩的第一个坑!如果你的实际需求是授权码流,那得先把流程对应上,AAD对不同OAuth流的参数要求差得挺多的。

下面给你梳理几个必查的方向:

1. 核对/token请求的必填参数

AAD的/token端点对授权码流有严格的参数要求,少一个或者错一个都会触发这个错误,你可以逐一对照:

  • grant_type:必须是authorization_code(授权码流专属),要是你真的用隐式流,那调用这个接口本身就不符合流程,直接会报错
  • code:从/authorize拿到的授权码,注意这个码只能用一次,如果之前试过调用失败,得重新获取新的授权码
  • client_id:必须和你在AAD注册应用时的客户端ID完全一致,大小写、字符都不能错
  • redirect_uri:必须和应用注册里配置的重定向URI完全匹配,包括HTTP/HTTPS、端口、路径,差一个斜杠都会出问题
  • 如果你是SPA这类公共客户端,授权码流必须加code_verifier(PKCE验证用),而且要和你在/authorize请求里的code_challenge对应上;如果是后端应用这类机密客户端,还得加client_secret或者客户端证书

2. 检查请求的Content-Type格式

POST请求的Content-Type必须是application/x-www-form-urlencoded,绝对不能用application/json——很多人用axios的时候会默认发JSON格式,这直接就会触发AADSTS90014错误。给你个正确的axios请求示例参考:

const tokenParams = new URLSearchParams();
tokenParams.append('grant_type', 'authorization_code');
tokenParams.append('code', '你的授权码');
tokenParams.append('client_id', '你的客户端ID');
tokenParams.append('redirect_uri', '你的重定向URI');
tokenParams.append('code_verifier', '你的PKCE验证器'); // SPA必填

axios.post('https://login.microsoftonline.com/organizations/oauth2/v2.0/token', tokenParams, {
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded'
  }
});

3. 确认授权码的有效性

  • 授权码的有效期只有10分钟,超时就会失效
  • 授权码只能使用一次,哪怕第一次调用失败了,也得重新去/authorize拿新的
  • 还要确保/authorize请求里的scope和/token请求的scope一致(或者/token可以省略scope,默认用授权时的范围),不匹配也可能报错

4. 检查AAD应用注册的配置

  • 确认你的应用已经启用了对应的流程:如果是授权码流,要在应用注册的「身份验证」页面里,勾选「授权码流」(SPA还要勾选「允许公共客户端流」);如果是隐式流,勾选「ID令牌」或「访问令牌」,此时不需要调用/token接口
  • 重定向URI必须已经正确添加到应用注册中,比如http://localhost:3000/callback和http://localhost:3000是两个完全不同的URI,不能混着用

5. 深挖错误响应的详细信息

AAD的错误响应里通常会有error_description字段,里面会有更具体的提示,比如「缺少grant_type参数」或者「redirect_uri不匹配」。你可以把axios返回的这个字段内容贴出来,能更快定位问题。

内容的提问来源于stack exchange,提问作者Johan Marais

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:17:09