ThinkPHP6與Ucenter整合
需求
當(dāng)用戶授權(quán)登錄微信公眾號(hào)提供的程序時(shí),或者通過微信公眾號(hào)注冊(cè)時(shí),將注冊(cè)信息發(fā)送給ucenter接口,通過ucenter實(shí)現(xiàn)注冊(cè)和登錄。該功能基于之前開發(fā)的微信公眾號(hào)會(huì)話開發(fā)程序。
參考資料
在整合TP6與ucenter時(shí),主要參考了?UCenter API開發(fā)筆記——UCenter與ThinkPHP5.1 整合?實(shí)現(xiàn)了成功通信。
UCenter接口開發(fā)文檔
整合前提
thinkphp6
這個(gè)肯定已經(jīng)有了。
安裝Center1.6.0
因之前我已經(jīng)安裝過Ucenter,并且實(shí)現(xiàn)了Ucenter和Supesite的整合,此處安裝Ucenter過程略。請(qǐng)百度Ucenter安裝方法。
下載thinkphp5ucenter接口
下載地址:?thinkphp5 UCenter 接口
整合
ucenter中添加應(yīng)用程序,參考UCenter API開發(fā)筆記——UCenter與ThinkPHP5.1 整合
將下載好的thinkphp5ucenter接口代碼中的UCenter目錄復(fù)制到thinkphp的擴(kuò)展目錄extend目錄下,如圖所示。
復(fù)制ucenter中配置的通信參數(shù)
進(jìn)入U(xiǎn)Center->應(yīng)用管理->剛剛添加的那一項(xiàng)應(yīng)用->編輯->頁(yè)面底部?jī)?nèi)容
將配置信息黏貼到thinkphp根目錄/extend/UCenter/config.php中覆蓋保存
tp6中新建一個(gè)模塊用于與Ucenter通信
因我部署的tp6是單應(yīng)用,所以新建controller代碼如下
php think make:controller app/UCenter
新建一個(gè)模型
php think make:model uc/UCenter
修改新創(chuàng)建的控制器和模型
7.1 修改控制器使其繼承UcenterControllerApiController,完整代碼如下
? ?<?php
? ?declare (strict_types = 1); ? ?namespace appcontroller; ? ?use UcenterControllerApiController; ? ?class UCenter extends ApiController
? ?{ ? ? ? ?public $eventListener = 'appmodelucUCenter';
? ?}
7.2 修改模型使其繼承UCenterModelEventModel,完整代碼如下
? ?<?php
? ?declare (strict_types = 1); ? ?namespace appmodeluc; ? ?use UCenterModelEventModel; ? ?/**
? ? * @mixin thinkModel
? ? */
? ?class UCenter extends EventModel
? ?{ ? ? ? ?//
? ?}
8 配置路由
開啟系統(tǒng)路由 config/route.php
'url_lazy_route' => true,
此處我保持false也是可以成功的。最好還是改為true
新增路由信息
Route::get('uc', 'uc/UCenter/uc');
打開文件 thinkphp根目錄/route/app.php新增一條路由信息
9 修改extend/UCenter/Controller/ApiController.php
去掉use thinkLog;和use thinkLoader;
添加use thinkfacadeLog;
去掉class ApiController extends Controller 中的 extends Controller
``
將
$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應(yīng)用信息
應(yīng)用主URL更改為應(yīng)用域名/index.php/uc
應(yīng)用接口文件名稱由uc.php該為uc
到此,刷新ucenter應(yīng)用管理頁(yè)面,可以看到通信成功。
下一篇講通過ucenter接口實(shí)現(xiàn)注冊(cè)和登錄。