基于ThinkPHP3.2.3的微信OAuth2.0网页授权认证模块

为了让大家不用重复造轮子,我写了一个TP控制器,继承控制器就可以直接用微信网页授权功能,但对于不是使用TP的小伙伴,可以直接在./Application/Home/Common/function.php看授权代码,再自己更改下就可以用了,这样速度也快点,希望能帮助到你们

我的源代码全部放在Github上,大家可以先去下载,然后跟着本教程就可以对接

Github:https://github.com/PowerDos/WeChatOAuth2.0

第一步

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

第二步

配置你的公众号信息

  • 进入文件./Application/Common/Conf/config.php
  • 将你的公众号相关信息写入
  1. <span style=“font-size:14px;”><?php
  2. //这里填入的你域名
  3. define(“_URL_”,“www.baidu.com”);
  4. //这里填入你公众号的APPID
  5. define(“_APPID_”,“你公众号的APPID”);
  6. //这里填入你公众号的APPSECRET
  7. define(‘_APPSECRET_’,‘你公众号的APPSECRET’);
  8. return array(
  9.     //’配置项’=>’配置值’
  10.     ‘DB_TYPE’               =>  ‘mysql’,     // 数据库类型
  11.     ‘DB_HOST’               =>  ‘127.0.0.1’// 服务器地址
  12.     ‘DB_NAME’               =>  ,          // 数据库名
  13.     ‘DB_USER’               =>  ,      // 用户名
  14.     ‘DB_PWD’                =>  ,          // 密码
  15.     ‘DB_PORT’               =>  ‘3306’,        // 端口
  16.     ‘DB_PARAMS’ => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL) ,
  17.     ‘MODULE_ALLOW_LIST’    =>    array(‘Home’,‘Admin’),//模块
  18.     ‘DEFAULT_MODULE’       =>    ‘Home’,
  19.     ‘URL_ROUTER_ON’   => true,
  20.     ‘URL_ROUTE_RULES’=>array(
  21.         ‘index$’ => ‘Home/Index/index’//定义路由
  22.     )
  23. );</span>

 

第三步

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

  1. <span style=“font-size:14px;”><?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. class OAuth2Controller extends Controller {
  5.     public function _initialize(){
  6.         //判断是否验证过
  7.         if((session(“?userOpenid”)&&session(“?userSex”))||(session(“?userOpenid”)&&session(“?userNickname”))){
  8.             //已验证过
  9.             //如果你不需要用户绑定的话,可以跳过下面这步
  10.             if(!session(“?userID”)){
  11.                 $this->redirect(‘这里填入要跳转的绑定页面’,,2,“<h1>请先绑定账号再使用,将自动跳转到绑定页面</h1>”);
  12.             }
  13.         }else{
  14.         //进入验证
  15.         //方法放在./Application/Home/Common/function.php下
  16.             Check();
  17.         }
  18.     }
  19. }</span>

Demo

  1. <span style=“font-size:14px;”><?php
  2. namespace Home\Controller;
  3. class DemoController extends OAuth2Controller {
  4.     public function index(){
  5.         $this->show(“这个是测试案例”);
  6.     }
  7. }</span>

 

P.S.

相关认证代码放在目录./Application/Home/Common/function.php下(不是用TP写的小伙伴可以在这里参考下认证代码)
注意要创建相应的数据库和表。具体更改在function目录下更改getUserInfo()方法就好