由于FASTADMIN官方没有给出关于Ucenter插件的使用说明文档,看到很多朋友都在问相关的问题,有的通信失败,有的通信成功但不能同步会员登陆注册,有的不知道如何设置插件等等,下面给大家分享一下我的使用心得。

准备工作:

1.在你的Fastadmin后台安装Ucenter插件;

2.安装你的Ucenter服务端和DISCUZ论坛(你也可以单独安装Ucenter服务端,这里为了方便介绍同步注册登录的方法,我就默认安装DISCUZ和Ucenter);

**注意**Fastadmin官方有一个修改版Ucenter,是由于默认的会员注册需要填写手机号字段,但是官方修改版我安装之后始终有些问题,所以在这里就使用DISCUZ版本的Ucenter.


配置参数:

1.登录你的Ucenter服务端,然后再应用管理中添加应用

通信URL为  “你的站点URL/addons/ucenter/index/api”

开启同步和接收通知全部选择“是”。

然后提交。

接下来把生成的Ucenter配置信息全选复制,接着找到Fa的程序文件->打开Ucenter插件目录,编辑uc.php文件,然后将刚才复制的配置信息粘贴到对用位置。

保存->刷新。然后返回Ucenter服务端->应用管理,可以看到你的Fa程序通信成功

如果通信失败,请检查你填写的URL地址是否正确。


同步注册登录:

**由于我使用的是DISCUZ官方版Ucenter服务端,所以我需要将Fa程序的用户注册中的提交手机号这一项暂时注释掉。

打开 /application/index/controller/User.php


1.添加

use app\common\library\Auth;
use addons\ucenter\library\Uc;
use think\Loader;


2.在public function _initialize()中添加

Loader::import('uc', ADDON_PATH . 'ucenter');


3.同步注册->在会员注册public function register() 中找到

 if ($this->auth->register($username, $password, $mobile,$email)) {...

然后添加同步代码,添加之后此处为

 if ($this->auth->register($username, $password, $email)) {
     $synchtml = '';
     if (defined('UC_STATUS') && UC_STATUS) {
          $uc = new \addons\ucenter\library\client\Client();
          $ucuid = $uc->uc_user_register($username, $password, $email);
          $synchtml = $uc->uc_user_synlogin($ucuid);
                   }
          $this->success(__('Sign up successful') .$synchtml, $url ? $url : url('user/index'));


4.同步登录->在会员登录public function login() 中找到

if ($this->auth->login($account, $password)) {...

添加同步代码后如下

if ($this->auth->login($account, $password)) {
    $synchtml = '';
       if (defined('UC_STATUS') && UC_STATUS) {
            $uc = new \addons\ucenter\library\client\Client();
            $synchtml = $uc->uc_user_synlogin($this->auth->id);
        }
               $this->success(__('Logged in successful') . $synchtml, $url ? $url : url('user/index'));


5.同步注销->在注销登录public function logout() 中找到

$this->auth->logout();

添加同步代码后为

 $this->auth->logout();
 $synchtml = '';
   if (defined('UC_STATUS') && UC_STATUS) {
        $uc = new \addons\ucenter\library\client\Client();
        $synchtml = $uc->uc_user_synlogout();
        }
 $this->success(__('Logout successful') . $synchtml, url('user/index'));


然后保存->刷新,现在就实现了同步登录和注册功能,由于修改了程序文件,有的机器可能需要多刷新几次。


流程说明:

其实简单来说就是要实现同步注册登录等UCENTER客户端功能

1.在登录和注册的User控制器中引入Uc

2.导入uc常量

Loader::import('uc', ADDON_PATH . 'ucenter');

3.添加同步代码,使用条件判断是否正常启用ucenter插件

格式如下

if (defined('UC_STATUS') && UC_STATUS) {
     //在这里写uc代码   
 }

4.同步代码需要将接口返回值在页面中输出所以参照前面正确方法。