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

微信网页授权域名大于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 /MP_xxxx.txt {  
        root /var/nginx/html/;  
    }  
  
    # 重定向URI,一级目录是域名  
    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值是/blog.mosong.cc/wxauth/callback?code=xxxxx&state=xxx,开头已经确定有一个/了。

所以这里Nginx做302的最终链接是:

https://blog.mosong.cc/wxauth/callback?code=xxxxx&state=xxx

到这里,就完成了,整个链接都是你业务服务的。

业务域名blog.mosong.cc没有加到微信网页授权域名中,也正常拿到codestate了。后续就是继续获取openid与AccessToken了。

最后

这里用的示例域名wechat-oauth2.mosong.cc,如果你加到你公众号的网页授权域名中,你也可以用,但是添加需要我在这个根目录放验证文件。

成功用一个专用二级域名做重定向,作为微信网页授权域名,解决所有项目的授权的问题,还没有任何使用限制。

(完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值