微信公众号不满足2个授权域名,实现多域名授权

今天在给客户做公众号开发的时候,出现了一个问题:客户有一个商城,还有两个独立的系统,都需要网页授权来获取用户信息,但是公众号只能设置两个业务域名,不满足业务需求,寻找解决办法。

实现原理:做一个code独立域名,在授权的时候授权这个域名。随后所有需要登录的地方,来此换取code,再回调回去即可。

微信授权域名原理.jpg

代码实现

<?php
    $code           =   htmlspecialchars($_GET['code']);
    $appid          =   'xxxx';
    $secret         =   'xxxx';
    $redirectUrl    =   $_GET['redirect_url'];
    $domain         =   (((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://').$_SERVER['HTTP_HOST'];

    if($code){
        if(!$redirectUrl){
            exit('hasCode But Not RedirectUrl');
        }
        $redirectUrl    .=  (strripos(urldecode($redirectUrl),'?') ? '&code='.$code : '?code=').$code;
        header("location:".$redirectUrl);
        exit;
    }else{
        if(!$redirectUrl){
            exit('Not RedirectUrl');
        }
        $authorizeRedirectUrl   =   $domain.'?redirect_url='.$redirectUrl;
        $codeUrl       =   "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".urlencode($authorizeRedirectUrl)."&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
        header("location:".$codeUrl);
        exit;
    }
?>

原文地址:http://blog.renpengpeng.com/2021/04/24/wxgzh-domain-many.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值