ThinkPHP6与Ucenter整合

需求

当用户授权登录微信公众号提供的程序时,或者通过微信公众号注册时,将注册信息发送给ucenter接口,通过ucenter实现注册和登录。该功能基于之前开发的微信公众号会话开发程序。

参考资料

在整合TP6与ucenter时,主要参考了 UCenter API开发笔记——UCenter与ThinkPHP5.1 整合 实现了成功通信。

UCenter接口开发文档

整合前提

thinkphp6

这个肯定已经有了。

安装Center1.6.0

因之前我已经安装过Ucenter,并且实现了Ucenter和Supesite的整合,此处安装Ucenter过程略。请百度Ucenter安装方法。

下载thinkphp5ucenter接口

下载地址: thinkphp5 UCenter 接口

整合

  1. ucenter中添加应用程序,参考UCenter API开发笔记——UCenter与ThinkPHP5.1 整合
  2. 将下载好的thinkphp5ucenter接口代码中的UCenter目录复制到thinkphp的扩展目录extend目录下,如图所示。

  3. 复制ucenter中配置的通信参数

    进入UCenter->应用管理->刚刚添加的那一项应用->编辑->页面底部内容

  4. 将配置信息黏贴到thinkphp根目录/extend/UCenter/config.php中覆盖保存

  5. tp6中新建一个模块用于与Ucenter通信

    因我部署的tp6是单应用,所以新建controller代码如下

    php think make:controller app/UCenter

  6. 新建一个模型

    php think make:model uc/UCenter

  7. 修改新创建的控制器和模型

7.1 修改控制器使其继承UcenterControllerApiController,完整代码如下


    

7.2 修改模型使其继承UCenterModelEventModel,完整代码如下


    

8 配置路由

  1. 开启系统路由 config/route.php

    'url_lazy_route' => true,

    此处我保持false也是可以成功的。最好还是改为true

  2. 新增路由信息

    1. 打开文件 thinkphp根目录/route/app.php新增一条路由信息

    Route::get('uc', 'uc/UCenter/uc');

9 修改extend/UCenter/Controller/ApiController.php

  1. 去掉use thinkLog;和use thinkLoader;
  2. 添加use thinkfacadeLog;
  3. 去掉class ApiController extends Controller 中的 extends Controller

``

  1. $action = Loader::parseName($get['action'], '1');
    改为$action = parse_name($get['action'], '1');

10 修改extend/UCenter/Controller/UcController.php

1 去掉use thinkController;,添加下面的代码

use thinkfacadeLog;
use thinkfacadeRequest;

2 去掉class UcController extends Controller的extends Controller

3 更改$ip = !empty($reg_ip) ? $reg_ip : get_client_ip();
$ip = !empty($reg_ip) ? $reg_ip : Request::host();

11 修改UCenter应用信息

  1. 应用主URL更改为应用域名/index.php/uc
  2. 应用接口文件名称由uc.php该为uc

到此,刷新ucenter应用管理页面,可以看到通信成功。

下一篇讲通过ucenter接口实现注册和登录。

你可能感兴趣的:(thinkphp6,ucenter)