微信微擎的网页oauth的授权如何实现多个域名的转换

需求是这样的 现在有3个不同的域名,一个认证的微信公众号,由于公众号授权回调页面域名只能写一个,因此对于我有多个微擎系统分别部署在不同服务器上(一台做营销业务、一台做分销系统、一台做餐饮系统),分别部署!网上有很多这样的思路我找到了三种,但是方法多是一样的。

  1. 假设将网页授权回调域名设置为www.test.com;另外的域名为www.test1.com,www.test2.com!
  2. 正确的回调是这(php)

$redirect_uri=’www.test.com’;

$url=”https://open.weixin.qq.com/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,那么微信服务器就会报返地址错误。其实道理很简单,因为微信没有授权这个网址了。那么是不是可以借www.test.com来验证。当然是可以的,只要做一个中转的服务器就可以了。

4、网上我找了好久,只有一种中转的方法,但是微擎提供的是另一种思路。下面我把两种方法多写给大家,希望对大家有帮助。

方法一、是改变https://open.weixin.qq.com/connect/oauth2/authorize这个认证地址为自己代理服务器的地址,这个方法网上很多,我测试了一下基本上多可以用。

方法二、是微擎用的改$redirect_uri=’www.test.com’,这样是可以拿到code,设置方法也很简单,就是设置微擎的独立oauth域名。那么问题来了,设完过后,我没有找到微擎的文档说,怎么回到www.test1.com上去。因为是test和test2要用code 。其实比较简单,这要test中转服务 器header给他们两个就可以了!具体的方法和代码,先在test的服务器上建一个app目录里面再写一个index.php

<?php

$back_url = urldecode(“http://www.test1.com/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'],

        ]));

来源:微擎系统,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/845

发表评论

电子邮件地址不会被公开。 必填项已用*标注

侵权联系
分享本页
返回顶部