今天在给客户做公众号开发的时候,出现了一个问题:客户有一个商城,还有两个独立的系统,都需要网页授权来获取用户信息,但是公众号只能设置两个业务域名,不满足业务需求,寻找解决办法。
实现原理:做一个code独立域名,在授权的时候授权这个域名。随后所有需要登录的地方,来此换取code,再回调回去即可。
代码实现
<?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; }
作者: 任鹏鹏
Copyright © 2021.自由园 All rights reserved. 鲁ICP备16000743号 滇公网安备 53010302001103号