不经过悉心栽培,花儿开不出鲜艳的花朵;不经过时间的历练,幼苗长不成参天大树。

Thinkphp5(任何框架都可以)结合Ucenter在单页开发模式下实现相互通信的具体步骤[踩坑记](一)

php 建伟 871℃ 0评论

前言

Ucenter这个玩意貌似现在好久没有人研究了,不过没办法,最近有个项目中有三个vue开发的单页应用网站和已存在的论坛网站要实现登录通信,直白一点就是我在一个网站登录了,去访问其他网站我的登录状态还是存在的。

Ucenter是什么

UCenter 的中文意思就是“用户中心”,其中的 U 代表 User 也代表 You ,取其中的含义就是“用户中心”,或者说“你(最终用户)的中心”。 UCenter 是 Comsenz 旗下各个产品之间信息直接传递的一个桥梁,通过 UCenter 站长可以无缝整合 Comsenz 系列产品,实现用户的一站式注册、登录、退出以及社区其他数据的交互的php框架。

当然这是官方的解释,说白了就是统一用户中心,尤其对于discuz论坛结合其他产品的统一。

通信原理

首先让我们看一下他的目录结构

advanced文件下有相关接口文档、示例代码、和尤其重要的客户端文件uc_client

upload下面是服务端文件  里面有安装文件install  discuz论坛一般都会默认安装吧

其他文件不怎么重要也就不说了

 

 

 

 

 

Ucenter实现同步登陆的原理就是cookie,一个应用登陆成功之后,向Ucenter传递数据,让Ucenter通知其他的应用也设置cookie,这样用户在访问其他应用的时候通过已经设置好的cookie实现自动登陆。通知登录重要的一个函数就是uc_user_synlogin 他需要传递一个用户id   然后返回值会生成同步登录javascript代码,来达到通知效果,本篇文章不会采用他这种方式,因为我们网站是采用单页开发的。

安装服务端客户端文件 添加通信网站

安装服务端就不做过多介绍了,在你网站根目录下建个uc_server文件夹,然后把upload文件放进去,访问安装路径即可,他会在你数据库里面生成ucenter一些数据表,目录接口大致如如下

 

 

 

 

 

 

 

 

 

 

这是后台登录后的界面

 

 

 

 

 

 

 

 

重要的来了

重要的是安装客户端,然后在服务端后台里面添加应用实现通信成功

在你自己客户端项目里面加入以下文件

api/uc.php 就是他服务端默认回调的接口,他会请求你这个接口

include下面是操作数据库的实例

uc_client下是一些类库

config.inc.php 是通信相关的配置 包括key 和数据库 很重要

 

 

 

 

 

 

 

 

 

 

后台添加应用后 他会生成一个key,这个key很重要需要在客户端配置才能实现通信

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

我图中标红的都是一些重要参数

这是客户端填写key的地方包括应用ID   配置文件config.inc.php中

 

 

 

 

 

这个时候 刷新服务端 出现通信成功 第一步搞定了

由于内容比较多,下一步放到第二篇文章来继续

 

转载请注明:Li Jianwei's Blog » Thinkphp5(任何框架都可以)结合Ucenter在单页开发模式下实现相互通信的具体步骤[踩坑记](一)

喜欢 (2)or分享 (0)
web技术交流群
22765697