网页授权域名使用“路径指向的web服务器(或虚拟主机)的目录”配置出现10003错误?
发布于 4 年前 作者 jieyan 348 次浏览 来自 官方Issues

问题:

网页授权域名使用了 “路径指向的web服务器(或虚拟主机)的目录” 方式后,通过将相应的校验文件和公众号网页一起打包,并通过nginx部署至服务器,采用 `域名+Path` 方式指向来获取相应资源,公众号设置上填写正确访问路径目录后,校验通过保存成功。公众号网页打包时配置redirectUri为公众号所设置的网页授权域名的值,出现在访问中,微信授权登录时,出现 “redirect_uri域名与后台设置不一致,错误码10003”

请问这种配置方式下,公众号网页在调用云开发 Web SDK 的cloud.startLogin()方法时,参数所填写的 `redirect_uri` 应该如何填写?

当前配置情况:

公众号-公众号设置-功能设置-网页授权域名(大概格式):sub.testxxx.com/web

公众号网页,调用云开发 Web SDK cloud.startLogin(),配置redirect_uri: https://sub.testxxx.com/web

运行公众号网页nginx容器A:

    listen 80;
    location /__wx__/ {
        proxy_pass https://servicewechat.com/wxa-qbase/;
    }

    location / {
        root   /usr/share/nginx/html;   # 已放置公众号静态网页
        index  index.html index.htm;
    }

公众号静态网页目录

--/usr/share/nginx/html
   | -- ...
   | -- index.html
   | -- MP_verify_xxxxxxx.txt

前置nginx负载均衡,代理域名sub.testxxx.com

   {
        listen 443;
        ssl on;
        location ~* "^/web(/|$)(.*)" {
             rewrite "(?i)/web(/|$)(.*)" /$2 break;
             proxy_pass http://A容器:80;
             proxy_redirect  off;
        } 
        location ~* "^/__wx__(/|$)(.*)" {
             rewrite "(?i)/__wx__(/|$)(.*)" /__wx__/$2 break;
             proxy_pass http://A容器:80;
             proxy_redirect  off;
        }
   }

测试情况:

curl https://sub.testxxx.com/web/

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" href="./favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport" />
    <title>公众号网页</title>
    <!-- 公众号 JSSDK -->
    <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
    <!-- 云开发 Web SDK -->
    <script src="https://res.wx.qq.com/open/js/cloudbase/1.2.0/cloud.js"></script>
  <script type="module" crossorigin src="./assets/index.978a9c1f.js"></script>
  <link rel="modulepreload" href="./assets/vendor.0f57903d.js">
  <link rel="stylesheet" href="./assets/index.4b3c4cd9.css">
</head>
  <body>
    <div id="app"></div>
    
  </body>
</html>

curl https://sub.testxxx.com/web/MP_verify_xxxxxxx.txt
kJZoNHudBuxxxxxx

curl https://sub.testxxx.com/__wx__/oauth
{"base_resp":{"ret":40097,"errmsg":""}}

上述访问已成功测试获取资源正常,对接 `servicewechat.com` 服务正常。

但在实际微信上尝试使用时,均出现10003错误

请麻烦官方解答一下,在正常使用云开发web SDK时填写redirect_uri与公众号后台的域名字符串后,为何还会出现不一致错误?谢谢

补充:访问url在经过前置nginx中转后,到达服务nginx的路径接收变化情况

https://sub.testxxx.com/web/MP_verify_xxxxxxx.txt   前置nginx 
  --> http://A容器:80/MP_verify_xxxxxxx.txt         服务nginx 

https://sub.testxxx.com/__wx__/oauth         前置nginx 
   --> http://A容器:80/__wx__/oauth           服务nginx 
     --> https://servicewechat.com/wxa-qbase/oauth 外部
1 回复

网页域名设置/web去掉试试

回到顶部