Nest API集成授权报Error 400: redirect_uri_mismatch如何解决
这个报错的核心触发逻辑非常明确:你授权请求里携带的redirect_uri参数值,和平台侧登记的合法重定向地址没有100%逐字符完全匹配,不存在其他玄学原因。你可以按下面的顺序逐一排查修复:
- 先确认双控制台的重定向地址配置完全一致
你需要同时在两个配置入口填写完全相同的重定向地址,少配任意一处都会触发报错:- 对应OAuth2客户端ID所在云服务凭据页的「已授权重定向URI」列表
- Nest设备接入对应项目的配置页重定向URI项
两边填写的地址必须逐字符完全一致,不要一边写带www的域名一边写不带www的,也不要一边写IP一边写localhost。
- 逐字符校验请求参数里的redirect_uri值
平台做匹配是严格逐字符校验,以下任意一点细微差异都会被判定为不匹配:- 协议不一致:配置的是
http开头的本地调试地址,请求里误传成https开头 - 端口不一致:配置里写的是本地3000端口,请求里传的是8080、8000等其他端口
- 路径末尾斜杠差异:配置的路径是
/callback,请求里传成/callback/,反过来配置带斜杠请求不带也不行 - 多余/缺失查询参数:配置的地址不带任何后缀参数,请求里的地址多拼了
?test=1这类多余参数
- 协议不一致:配置的是
- 检查redirect_uri参数的编码格式
拼接到授权请求URL里的redirect_uri值必须做标准URL编码,比如本地回调地址http://localhost:3000/callback编码后应该是http%3A%2F%2Flocalhost%3A3000%2Fcallback,不要直接把未编码的地址裸拼到URL参数里。 - 确认凭证和项目的绑定关系
你替换到URL里的oauth2-client-id必须是当前Nest设备接入项目绑定的云项目下创建的客户端ID,跨项目使用其他客户端ID,哪怕redirect_uri填的完全一样也会报匹配错误。 - 配置修改后等待缓存生效
平台的OAuth配置更新有5-10分钟的缓存延迟,刚改完配置不要立刻测试,等10分钟左右清掉浏览器缓存再重试即可。
内容的提问来源于stack exchange,提问作者user511
相关产品推荐
相关产品推荐

