100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 基于ThinkPHP3.2.3的微信OAuth2.0微信网页授权 微信公众号网页登录 改装

基于ThinkPHP3.2.3的微信OAuth2.0微信网页授权 微信公众号网页登录 改装

时间:2022-02-15 04:00:15

相关推荐

基于ThinkPHP3.2.3的微信OAuth2.0微信网页授权 微信公众号网页登录 改装

首先我参考的这位仁兄的,感谢他地址 /a5435431941/article/details/61615851

仁兄的Github:/PowerDos/WeChatOAuth2.0

仁兄没有给sql,我的弄好了上传出来 地址: /detail/qq_27229113/9914285

代码也传上来,地址:/detail/qq_27229113/9914291

贴出我改动的部分

//获取用户openid

function getOpenid(){

if(!$_GET['code']){

//获取当前的url地址

// $rUrl=_URL_.__ACTION__.'.html';

$rUrl="/Home/Demo/index"; //改成当前的url

$url="https://open./connect/oauth2/authorize?appid="._APPID_."&redirect_uri=".$rUrl."&response_type=code&scope=snsapi_base&state=12345#wechat_redirect";

//跳转页面

redirect($url,0);

}else{

$aUrl="https://api./sns/oauth2/access_token?appid="._APPID_."&secret="._APPSECRET_."&code=".$_GET['code']."&grant_type=authorization_code";

//获取网页授权access_token和openid等

$data=getHttp($aUrl);

return $data['openid'];

}

}

//获取用户详细信息

function getUserInfo(){

if(!$_GET['code']){

//获取当前的url地址

// $rUrl=_URL_.__ACTION__.'.html';

$rUrl="/Home/Demo/index";//改成当前的url

$url="https://open./connect/oauth2/authorize?appid="._APPID_."&redirect_uri=".$rUrl."&response_type=code&scope=snsapi_userinfo&state=12345#wechat_redirect";

//跳转页面

redirect($url,0);

}else{

$getOpenidUrl="https://api./sns/oauth2/access_token?appid="._APPID_."&secret="._APPSECRET_."&code=".$_GET['code']."&grant_type=authorization_code";

//获取网页授权access_token和openid等

$data=getHttp($getOpenidUrl);

$getUserInfoUrl="https://api./sns/userinfo?access_token=".$data['access_token']."&openid=".$data['openid']."&lang=zh_CN";

//获取用户数据

$userInfo=getHttp($getUserInfoUrl);

//默认设置头像是132*132的

$userInfo['headimgurl']=substr($userInfo['headimgurl'],0,strlen($userInfo['headimgurl'])-1);

$userInfo['headimgurl']=$userInfo['headimgurl'].'132';

$userInfo['openid']=$userInfo['openid'];

$userInfo['city']=$userInfo['city'];

$userInfo['province']=$userInfo['province'];

$userInfo['country']=$userInfo['country'];

$userInfo['userInfo']=$userInfo['userInfo'];

$userInfo['nickname']=$userInfo['nickname'];

$userInfo['sex']=$userInfo['sex'];

// 将信息插入数据库

$userInfo['addtime']=date("Y-m-d H:i:s");

//删除language元素

unset($userInfo['language']);

$model=M("");

if($model->table('wUserInfo')->data($userInfo)->add()){

setSession($userInfo);

session("status",null);

}else{

echo "验证错误";

}

}

}

把仁兄的方法粘贴过来

第一步

将全部文件放在网站目录下

第二步

配置你的公众号信息

进入文件./Application/Common/Conf/config.php

将你的公众号相关信息写入 [php] view plain copy <spanstyle="font-size:14px;"><?php //这里填入的你域名 define("_URL_",""); //这里填入你公众号的APPID define("_APPID_","你公众号的APPID"); //这里填入你公众号的APPSECRET define('_APPSECRET_','你公众号的APPSECRET'); returnarray( //'配置项'=>'配置值' 'DB_TYPE'=>'mysql',//数据库类型 'DB_HOST'=>'127.0.0.1',//服务器地址 'DB_NAME'=>'',//数据库名 'DB_USER'=>'',//用户名 'DB_PWD'=>'',//密码 'DB_PORT'=>'3306',//端口 'DB_PARAMS'=>array(\PDO::ATTR_CASE=>\PDO::CASE_NATURAL), 'MODULE_ALLOW_LIST'=>array('Home','Admin'),//模块 'DEFAULT_MODULE'=>'Home', 'URL_ROUTER_ON'=>true, 'URL_ROUTE_RULES'=>array( 'index$'=>'Home/Index/index',//定义路由 ) );</span>

第三步

新建的控制器继承OAuth2Controller类即可实现微信网页授权认证功能

OAuth2Controller类的相关代码

[php] view plain copy <spanstyle="font-size:14px;"><?php namespaceHome\Controller; useThink\Controller; classOAuth2ControllerextendsController{ publicfunction_initialize(){ //判断是否验证过 if((session("?userOpenid")&&session("?userSex"))||(session("?userOpenid")&&session("?userNickname"))){ //已验证过 //如果你不需要用户绑定的话,可以跳过下面这步 if(!session("?userID")){ $this->redirect('这里填入要跳转的绑定页面','',2,"<h1>请先绑定账号再使用,将自动跳转到绑定页面</h1>"); } }else{ //进入验证 //方法放在./Application/Home/Common/function.php下 Check(); } } }</span>

Demo

[php] view plain copy <spanstyle="font-size:14px;"><?php namespaceHome\Controller; classDemoControllerextendsOAuth2Controller{ publicfunctionindex(){ $this->show("这个是测试案例"); } }</span>

P.S.

相关认证代码放在目录./Application/Home/Common/function.php下(不是用TP写的小伙伴可以在这里参考下认证代码)

注意要创建相应的数据库和表。具体更改在function目录下更改getUserInfo()方法就好

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。