微信网页授权域名大于2个的解决方法(不限数量)

25-10-13 16:21 101  

微信网页授权域名大于2个的问题解决。 问题描述 在做微信公众号做网页授权,提示 redirect_uri域名与后台配置不一致 ,然后去微信后台配置网页授权域名,发现微信限制最多配置2个。 一般情况:开发环境、测试环境、生产环境,这就已经大于2个了。可能还有不同业务线,多个不同业务的项目,更不够用了。 解决方法 直接看我的Nginx配置,应该一看就懂。 配置文件 /etc/nginx/conf.d/wechat-oauth2.mosong.cc.conf server { listen 80; listen 443 ssl; server_name wechat-oauth2.mosong.cc; include /etc/nginx/common/ssl.mosong.cc.conf; # https证书 location /MPxxxx.txt { * root /var/nginx/html/; } location / { return 302 https:/$request_uri; } } 不用额外服务,在你的nginx加上这个简单的配置就够了,能支持无数量限制的业务域名使用。 写个列子解释一下,比如要做微信网页授权的业务网站是: https://blog.mosong.cc 第一步: 拼接授权链接 https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s&redirect_uri=%s&response_type=code&scope=%s&state=%s#wechat_redirect 其它appid、scope、state自行填自己的实际值,重点是redirect_uri参数,链接一级目录使用业务域名,写成下面这个形式: https://wechat-oauth2.mosong.cc/blog.mosong.cc/wxauth/callback 最后跳转微信授权的链接是: https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=https%3A%2F%2Fwechat-oauth2.mosong.cc%2Fblog.mosong.cc%2Fwxauth%2Fcallback&response_type=code&scope=scope&state=state#wechat_redirect 第二步: 跳转微信接收回调 上面的链接跳转微信,微信回调拼接code的链接就是: https://wechat-oauth2.mosong.cc/blog.mosong.cc/wxauth/callback?code=xxxxx&state=xxx 因这个域名已经在网页授权域名里配置过了,所以能正常跳转接收code。 第三步: Nginx重定向到业务服务 结合第二步的链接再看我贴的Nginx配置文件内容 location / { return 302 https:/$request_uri; } 在Nginx里做302重定向(301也可以)跳转到业务链接。 注意这里的https:/不是写错了,故意这么写的。因$request_uri值是/http://blog.mosong.cc/wxauth/callback?code=xxxxx&state=xxx,开头已经确定有一个/了。 所以这里Nginx做302的最终链接是: https://blog.mosong.cc/wxauth/callback?code=xxxxx&state=xxx 到这里,就完成了,整个链接都是你业务服务的。 业务域名http://blog.mosong.cc没有加到微信网页授权域名中,也正常拿到code与state了。后续就是继续获取openid与AccessToken了。 最后 这里用的示例域名wechat-oauth2.mosong.cc,如果你加到你公众号的网页授权域名中,你也可以用,但是添加需要我在这个根目录放验证文件。 成功用一个专用二级域名做重定向,作为微信网页授权域名,解决所有项目的授权的问题,还没有任何使用限制。 原文链接:微信网页授权域名大于2个的解决方法(不限数量)-CSDN博客 ---------------------------------------分割线--------------------------------------------- 经过我实际的配置和测试,这个方法是可行的。如果有啥问题,可以直接联系我沟通。