悠悠楠杉
微信登录提示域名错误10003,先核对实际回调地址
用户点击“微信登录”,还没回到网站就看到“域名错误10003”。此时反复刷新、清理浏览器缓存,往往不会改变结果。这个报错通常与授权请求中的redirect_uri有关:微信要把登录结果送回该地址,但地址所属域名与当前应用允许使用的回调域名不匹配。
如果读者只是登录某个网站的普通用户,无法在微信里修改这项配置。把报错页面和登录入口发给网站客服,比反复更换网络有效。下面的排查主要针对能查看网站代码或微信平台配置的人。
登录页面没变,回调地址却换了
页面地址栏里看到的网站首页,不一定是微信收到的回调地址。发起授权时,请求会携带一个redirect_uri;它可能指向登录专用页面,也可能指向统一认证服务。定位时,查看跳往微信的授权链接,将其中经过编码的redirect_uri解码,记录它的完整地址,再核对域名。
假设一个网站原本使用正式域名登录,后来把部分流量切到了新域名。页面仍显示原来的品牌和登录按钮,授权请求里的回调地址却已经变成新域名。维护人员若只打开微信后台核对旧域名,会觉得配置没有问题。此时先对照实际请求与后台记录,确认发起请求的appid属于哪个应用,再决定是将新域名加入该应用允许的回调配置,还是把程序中的回调地址改回已配置的域名。
改动可能受现实条件限制:新域名尚未准备好供微信平台验证,或者登录服务由另一团队维护,不能直接改回调地址。先保留解码后的请求链接,交给负责微信应用配置和登录服务的人员核对;在配置与请求尚未对齐前,继续让用户重试不会完成登录。若修正后仍报错,再抓取新发起的授权请求,确认线上流量已用到修改后的地址。
后台填了域名,10003仍然出现
同一家公司可能同时运营公众号网页和独立网站,两者使用的微信应用及配置位置并不相同。公众号内的网页授权,核对对应公众号的网页授权域名;网站接入微信登录,则核对对应微信开放平台网站应用的授权回调域。只在另一个账号、另一个应用里添加了相同域名,当前请求依然可能失败。用授权链接中的appid找配置,比凭网站名称判断更稳妥。
核对域名时,留意子域名的差别:www.example.com与login.example.com是不同主机名。配置处通常关注回调域名,排查时却要保留完整redirect_uri,因为其中的路径能帮助定位是哪段程序生成了请求。若系统会在发起授权前切换登录域名,修改网站首页的跳转地址,也未必会改到授权参数。
还有一种容易漏掉的变化发生在测试环境。开发人员用临时域名验证登录,把它写进了授权请求;正式应用后台却只配置了正式域名。测试域名是否继续使用,要按对应应用的配置权限和平台要求处理,不要为了让测试通过,未经核对就改动正式环境正在使用的回调域名。
修改配置后,重新看一次授权请求
处理10003时,先保存报错对应的授权链接,确认其中的appid和解码后的redirect_uri;完成配置或代码修改后,再从登录入口发起一次请求,对比新链接。旧页面、旧二维码或尚未更新的部署仍可能带着原来的回调地址,单看后台已经填好的域名,无法确认用户实际发出的请求是否改变。
如果实际回调域名与对应应用的配置已经一致,报错仍持续,就把新的请求链接及出现报错的入口交给应用管理员核对当前配置状态。普通用户则只需提供登录页面地址和报错截图,等待网站处理,无须提交微信密码或验证码。

