问题:
网页授权域名使用了 “路径指向的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 外部