返回首页

微信OAuth2.0网页授权67可以添加多个域名吗?

185 2024-07-02 23:17 admin

一、微信OAuth2.0网页授权67可以添加多个域名吗?

只有一个。如果有多个程序,某个支持子目录。回调域名http://www.abc.com。在根目录下新建某个目录/pin。把代码传到pin文件夹。通过http://www.abc.com/pin。前提是这个代码支持子目录访问。这样就可以一个授权域名,(1+n)个程序,共用。如果不支持子目录访问,那就没办法了。

二、微信OAuth2.0授权回调页面域名设置问题怎么解决?

当下的解决方案是引入一个新的非常简单的应用来作为微信授权的代理服务,可以这么做:

1. 把公众号的网页授权接口域名设置成另外一个子域名,如proxy.your.com; 2. 然后把php_weixin_proxy里面的index.php部署到proxy.your.com

php_weixin_proxy下的index.php是一个很简单的php文件,你可以直接查看源码了解它的实现方式。因为当前项目的环境,我采用php来完成这个代理服务实现,实际上,你完全可以用任意平台语言来完成类似的功能。

当其它业务需要发起微信授权时,将授权请求先发到proxy.your.com,然后proxy.your.com会把这个请求转发到微信; 当用户同意授权后,proxy.your.com会收到微信的授权回调,并把回调结果(code、state参数)原封不动地再返回给最开始发起授权的业务。

唯一的区别在于,在不使用proxy.your.com的时候,你从应用发起微信授权的链接应该是这样的: https://open.weixin.qq.com/connect/qrconnect?appid=xxxxx&redirect_uri=http%3A%2F%2Fpassport.your.com%2F&response_type=code&scope=snsapi_login&state=584bc87e11ff37492#wechat_redirect 用了proxy.your.com之后,这个授权链接就应该是这样的: http://proxy.your.com/?appid=xxxxx&redirect_uri=http%3A%2F%2Fpassport.your.com%2Flogin%2Fnotify&response_type=code&scope=snsapi_base&state=584bc87e11ff37492&device=pc

后面这个链接跟上面的比: 1. 后面的链接中的host变成了proxy.your.com,也就是代理的授权回调域名; 2. 后面的多了一个device参数,这个是必要的。因为微信pc端跟移动端的授权地址是不一样的,而后面的链接是发送个proxy.your.com的,所以需要多加个参数告诉它在转发给授权申请给微信的时候,是用PC端还是移动端的授权地址。

三、cors维护方案?

1. CORS维护方案是必要的。2. 因为CORS(跨域资源共享)是一种浏览器机制,用于解决跨域访问的安全问题。如果没有有效的CORS维护方案,可能会导致安全漏洞和数据泄露的风险。3. 在维护CORS方案时,可以采取以下措施:首先,服务器端可以设置响应头中的Access-Control-Allow-Origin字段,指定允许访问的域名;其次,可以设置Access-Control-Allow-Methods字段,限制允许的HTTP方法;还可以设置Access-Control-Allow-Headers字段,限制允许的请求头;此外,还可以设置Access-Control-Max-Age字段,指定预检请求的有效期;最后,需要注意在开发过程中对CORS进行测试和调试,确保跨域访问的安全性和可靠性。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片

网站地图 (共30个专题205052篇文章)

返回首页