UCenter API 开发笔记——UCenter与ThinkPHP5.1 整合

一、前言:

因为移动互联网的迅速发展,各大互联网厂商都推出了小程序,再加上原有的APP、web等项目,用户数据被严重割裂。为了统一用户数据、优化用户体验:实现一个账号多平台登录、数据互通,迫切需要一个用户中心来管理各平台的用户。又因为平台用户数不多,且有discuz背景,所以用ThinkPHP整合十年前的UCenter,引出各种用户操作的API,就成了最佳选择。

而笔者在查找资料时,大多是thinkphp3.2与UCenter的整合文章,且描述的不是很清楚,故写此文记录合并过程,希望可以对有相同需求的人提供一点帮助。

二、UCenter 的基本功能

  • 账号管理:包括注册、登录、删除、修改用户信息(密码、邮箱等)
  • 头像管理:上传、删除,生成调用头像的链接,头像类别(真实头像、虚拟头像两种)

注:UCenter开发文档上没说真实头像虚拟头像的区别,笔者姑且认为虚拟头像就是我们平时的头像,而真实头像就是用户个人的照片。

  • 短消息管理:发送、删除短消息等。

注:本功能优点是可以实现用户跨平台交流,缺点是不能向IM(即时通讯软件)那样快速,而且原生不支持发送图片等媒体消息。

  • 好友管理:添加、删除好友,获取好友列表等
  • 其他功能:应用接口、积分接口、标签接口、事件接口和邮箱接口等不在本次开发范围之列,故不做讨论。

UCenter开发文档

三、准备工作

  • 安装 ThinkPHP5.1
    安装步骤详见 ThinkPHP5.1完全开发手册
    thinkphp5.1目录

  • 下载GitHub上@hyperzlibthinkphp5 UCenter 接口

    github截图

  • 一个UCenter
    ucenter后台截图

    • 安装方法及兼容PHP7网上有很多教程,这里就不赘述了
    • 笔者以discuz x3.4自带的UCenter为例,独立的UCenter整合方法也一样

四、整合

4.1 UCenter 中添加应用程序

  1. 点击首页应用管理进入应用管理界面
    4.1.1

  2. 点击添加新应用 开始添加应用
    4.1.2

  3. 开始添加应用

    • 安装方式:自定义安装
    • 应用类型:其他
    • 应用名称:你的应用名称
    • 应用主URL:暂时写要整合的thinkphp站点的域名(稍后会修改)
    • 应用ip:一般不填
    • 通信密钥:可不填(不填会自动生成)
    • 是否开启同步登录:是
    • 是否接受通知:是
    • 其他选项默认即可
    • 点击提交

    4.1.3

  4. 添加成功
    4.1.4-1
    4.1.4-2

4.2 整合 ThinkPHP5.1 与 GitHub 的代码

  1. 将下载的代码中的UCenter目录复制到thinkphp的扩展目录extend目录下
    4.2.1-1
    4.2.1-2

  2. 修改配置文件

    • 进入 UCenter->应用管理->刚刚添加的那一项应用->编辑
      4.2.2-1

    • 复制配置信息
      4.2.2-2

    • 将配置信息粘贴到 thinkphp根目录/extend/UCenter/config.php 中覆盖保存
      4.2.2-3

  3. thinkphp 中新建一个模块准备和UCenter通信

    • 新建一个控制器

      php think make:controller [模块名称]/[控制器名称]

      4.2.3-1

      笔者创建的模块是uc
      控制器名称是 UCenter

    • 创建一个模型

      php think make:model [模块名称]/[模型名称]

      4.2.3-2

      笔者使用的模块是uc
      模型名称是 UCenter

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

    • 修改新创建的控制器

      • 控制器继承 UCenter\Controller\ApiController

      • 覆盖公共属性$eventListener

        public $eventListener = [刚刚创建的模型];

      4.2.4-1

    • 修改新创建的模型
      继承 UCenter\Model\EventModel
      4.2.4-2

  5. 配置路由

    • 开启系统强制路由
      打开 thinkphp根目录/config/app.php

      // 将
      'url_lazy_route' => false,
      // 改为
      'url_lazy_route' => true,
      

      本步骤不是必须执行,只是为了系统安全而配置,

    • 为 UCenter能与thinkphp通信配置访问路由
      打开文件 thinkphp根目录/route/route.php新增一条路由信息

      // 新增一条路由信息
      Route::get('uc', 'uc/UCenter/uc');
      
  6. 修改下载的代码使之兼容thinkphp5.1

    • 修改文件 tinkphp根目录/extend/UCenter/Controller/ApiController.php
      将第五行 use think\App;
      改为use think\facade\Log;

      4.2.6-1

      thinkphp5.1取消了静态方法,故采用facade兼容

    • 修改文件 tinkphp根目录/extend/UCenter/Controller/UcController.php

      • 将命名空间改为UCenter\Controller
        4.2.6-2

      • 将类的继承由 BaseController 改为 Controller
        4.2.6-3

      这部分应该是作者没有改 tp3.2版本的代码,直接搬过去,从而没有做对tp5版本的兼容

    • 修改文件 tinkphp根目录/extend/UCenter/Api.php

      • 在14行添加require_once(__DIR__.'/config.php');
      • 将16行处 E('未发现ucnter配置文件');
        改为 exception('未发现ucnter配置文件');

    4.2.6-4

     > tp5抛弃了tp3.2的单字母助手函数,所以要作此修改来兼容tp5.1
    

4.3 修改UCenter应用信息

因为在创建应用时thinkphp并没有配置完成,也没有路由信息,所以现在要编辑UCenter对应的应用,来确保应用和UCenter通信成功从而完成整合。

  • 应用主URL改为 应用域名/index.php/uc

    • index.php若已配置隐藏,则可不用写
    • uc 为笔者在 4.2 -> 5. 处配置的路由信息,可替换为自己的配置
  • 应用接口文件名称 由 uc.php 改为 uc

4.3

五、整合完成

返回应用列表,发现通信成功,至此,UCenter 与 ThinkPHP5.1整合完成

5

六、后记

本文仅描述了UCenter与ThinkPHP5.1的整合过程,最终实现了通信成功。其中,笔者创建的uc模块仅为应用与UCenter通信使用。若读者要参照UCenter开发手册,对UCenter进行开发,则需要新建模块、控制器,使其继承 thinkphp根目录/extend/Controller/UcController.php进行开发。

如果本文对您有用或有意见建议,欢迎点赞、留言~

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
ucenter是一个开源的用户管理系统,可以用于实现用户注册、登录、资料管理等功能。而WordPress是一个流行的开源博客平台,也可以用于构建网站。将ucenter和WordPress整合可以让用户在WordPress网站上使用ucenter的账号进行登录和使用,提高用户体验。 要整合ucenter和WordPress,需要安装并配置ucenter插件和WordPress插件。具体步骤如下: 1. 下载并安装ucenter和WordPress插件。可以从官方网站下载ucenter和WordPress插件,然后按照说明进行安装。 2. 配置ucenter插件。打开ucenter插件的配置文件,设置ucenter的数据库连接等参数。然后将ucenter插件的文件上传到WordPress的wp-content目录下。 3. 配置WordPress插件。打开WordPress插件的配置文件,设置WordPress的数据库连接等参数。然后将WordPress插件的文件上传到WordPress的wp-content目录下。 4. 在WordPress后台启用ucenter插件和WordPress插件。登录WordPress后台,在插件管理页面中找到ucenter插件和WordPress插件,启用它们。 5. 在ucenter后台配置WordPress应用。登录ucenter后台,创建一个新的应用,然后将应用的相关参数复制到WordPress插件的配置文件中。 6. 测试整合效果。在WordPress的注册和登录页面测试整合效果,确保用户可以使用ucenter账号进行登录和使用。 以上是整合ucenter和WordPress的基本步骤,具体操作可能会因为不同的版本而有所不同。建议在操作前先备份好相关文件和数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值