微擎的⽹页oauth的授权如何实现多个域名的转换
通宵搞了两个晚,终于把这个问题解决了!
需求是这样的 现在有3个不同的域名,⼀个认证的,由于授权回调页⾯域名只能写⼀个,因此对于我有多个微擎系统分别部署在不同服务器上(⼀台做营销业务、⼀台做分销系统、⼀台做餐饮系统),分别部署!⽹上有很多这样的思路我到了三种,但是⽅法多是⼀样的。
1. 假设将⽹页授权回调域名设置为`st`;另外的域名为`st1`,`st
2`!
2. 正确的回调是这(php)
$redirect_uri='st';
$url="open.weixin.qq/connect/oauth2/authorize?
appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
header("Location:".$url);
3、那么第⼆个域名怎么办呢,如果简单的更换上⾯的$redirect_uri,那么服务器就会报返地址错误。其实道理很简单,因为没有授权这个⽹址了。那么是不是可以借st来验证。当然是可以的,只要做⼀个中转的服务器就可以了。
4、⽹上我了好久,只有⼀种中转的⽅法,但是微擎提供的是另⼀种思路。下⾯我把两种⽅法多写给⼤家,希望对⼤家有帮助。
⽅法⼆、是微擎⽤的改$redirect_uri='st',这样是可以拿到code,设置⽅法也很简单,就是设置微擎的独⽴oauth域名。那么问题来了,设完过后,我没有到微擎的⽂档说,怎么回到st1上去。因为是test和test2要⽤code 。其实⽐较简单,这要test中转服务 器header给他们两个就可以了!具体的⽅法和代码,先在test的服务器上建⼀个app⽬录⾥⾯再写⼀个index.php
<?php
代码转换$back_url = urldecode("st1/app/index.php");
header('Location: ' . implode('', [
$back_url,
strpos($back_url, '?') ? '&' : '?',
'i='.$_GET['i'],
'&c='.$_GET['c'],
'&a='.$_GET['a'],
'&code=' .$_GET['code'],
'&state=' .$_GET['state'],
]));

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。