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

AADSTS500112报错:reply address与请求授权码时提供的地址不匹配

错误根因

AADSTS500112: The reply address 'http://localhost:3000/#/training' does not match the reply address 'http://localhost:3000/' provided when requesting Authorization code

该报错触发的核心逻辑是 OAuth2 授权流程中,URI 的哈希片段(# 后的内容)属于浏览器端本地片段,不会随请求发送到 Azure AD 服务端。即使你在代码里给 redirect_uri 赋值为 http://localhost:3000/#/training,实际发送到 Azure AD 的请求中,redirect_uri 只会保留 http://localhost:3000/,和你在应用注册面板中配置的带哈希的重定向URI无法匹配,因此抛出错误。

排查与解决方案

  • 先验证实际请求的参数:打开浏览器开发者工具的「网络」面板,过滤路径包含 authorize 的请求,查看请求参数中的 redirect_uri 字段,确认是否已经丢失了 #/training 部分,先对齐这个前提。
  • 方案1:调整Azure应用注册配置
    直接在Azure AD应用注册的「身份验证」页面,将重定向URI修改为 http://localhost:3000/,和服务端实际接收到的参数完全对齐。你需要的#/training跳转逻辑可以在回调处理完成后,在前端代码中手动执行跳转,不需要放到服务端配置的重定向URI里。
  • 方案2:切换前端路由为History模式
    如果你的项目使用Hash路由(路径带#),可以切换为History模式,此时路由路径不会携带#,所有路径都会正常发送到服务端,你可以直接配置重定向URI为 http://localhost:3000/training,同时授权请求中也传入相同的完整路径即可完成匹配。
  • 方案3:通过state参数传递跳转路径
    符合OAuth2规范的通用方案:将需要跳转的/training路径写入授权请求的state参数中,Azure AD回调时会原封不动返回state值,你在回调页面读取state中的路径后再执行前端跳转即可,不需要修改现有重定向URI的基础配置。

内容的提问来源于stack exchange,提问作者Ozan Mudul

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:57:01