php 单点登录 ucenter 源码,Yii整合ucenter实现单点登录
准备工作
1.下载ucenter源码,并安装好
2.下载ucenter开发源码,根据自己的项目下载对应版本(utf-8

应用类型:选择其他
应用名称:自己填写
应用的主URL:填写yii项目的网址
应用IP:填写yii项目的ip地址
是否开启同步登陆:选择是
是否接受通知:选择是


设置好后,点击提交即可。
提交完成后,查看下面的:应用的UCenter配置信息

将里面的信息全部复制一下。
然后找到yii项目的根目录,找到:config.inc.php
将里面的这段信息:
[代码]php代码:define('UC_CONNECT', 'mysql');
define('UC_DBHOST', 'localhost');
define('UC_DBUSER', 'root');
define('UC_DBPW', '123');
define('UC_DBNAME', 'ucenter');
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', '`ucenter`.uc_');
define('UC_DBCONNECT', '0');
define('UC_KEY', 'adbejSMW8DCySKMscciI42C0scpGwPvasAy2is4');
define('UC_API', 'http://127.0.0.1/ucenter');
define('UC_CHARSET', 'utf-8');
define('UC_IP', '');
define('UC_APPID', '4');
define('UC_PPP', '20');
替换成刚才复制的信息。
然后看下面这段信息:
[代码]php代码:$dbhost = 'localhost'; // 数据库服务器
$dbuser = 'root'; // 数据库用户名
$dbpw = '123'; // 数据库密码
$dbname = 'zb_fm926'; // 数据库名
$pconnect = 0; // 数据库持久连接 0=关闭, 1=打开
$tablepre = ''; // 表名前缀, 同一数据库安装多个论坛请修改此处
$dbcharset = 'utf8'; // MySQL 字符集, 可选 'gbk', 'big5', 'utf8', 'latin1', 留空为按照论坛字符集设定
将配置信息修改为yii项目的数据库配置信息。
然后进入ucenter后台,点击应用管理,能够看到刚刚添加的应用,后面的通讯情况,显示通讯成功

OK ,初步配置完成。然后开始配置注册于登陆
打开yii项目,进入目录:\protected\vendor
在里面创建一个文件:ucenter.php
其内容如下:
[代码]php代码:
$path = dirname(__FILE__).'/../../uc_client/';
require_once($path.'../config.inc.php');
require_once($path.'client.php');
然后找到yii项目注册模块,在注册的流程中加入如下代码($username, $password, $email,需要自行获取):
[代码]php代码://ucenter
Yii::import('application.vendors.*');
include_once $homeUrl.'protected/vendor/ucenter.php';
//验证用户名是否存在
$flag = uc_user_checkname($username);
if($flag == -1)
{
echo "";
//$errMsg='用户名不合法';
exit;
}elseif($flag==-2){
echo "";
//$errMsg='包含不允许注册的词语';
exit;
}elseif($flag==-3){
echo "";
//$errMsg='用户名已经存在';
exit;
}
//验证邮箱是否存在
$flag = uc_user_checkemail($email);
if($flag == -4)
{
echo "";
//$errMsg='Email 格式有误';
exit;
}elseif($flag==-5){
echo "";
//$errMsg='Email 不允许注册';
exit;
}elseif($flag==-6){
echo "";
//$errMsg='该 Email 已经被注册';
exit;
}
$uid = uc_user_register($username, $password, $email);//注册用户至ucenter
如果注册成功,$uid返回ucenter注册成功之后的uid,判断是否注册成功,直接用if($uid>0)即可
然后修改登录代码:
在登录流程里面加入($username, $password自行获取):
[代码]php代码://ucenter
Yii::import('application.vendors.*');
include_once $homeUrl.'protected/vendor/ucenter.php';
//验证用户名是否存在
$flag = uc_user_checkname($username);
if($flag==-3)
{
}else{
echo "";
exit;
}
//到ucenter验证用户名密码是否正确
list($uid, $username, $password, $email) = uc_user_login($username, $password);
if($uid > 0)
{
//这里运行登录成功的代码
//将yii登陆状态同步给其他系统
$success_content = uc_user_synlogin($uid);
header("refresh:1;url=/"); //登录成功,1秒之后跳转。这里需注意,一定要有一个前端页面的跳转,方便用户给ucenter发送登陆成功的信息
echo $success_content;
exit;
}else{
//这里运行登录失败的代码
}
修改注销登陆:
找到注销登陆模块,在注销登录流程加入如下代码:
[代码]php代码://ucenter
Yii::import('application.vendors.*');
include_once $homeUrl.'protected/vendor/ucenter.php';
//将yii登陆状态同步给其他系统
$success_content =uc_user_synlogout();
header("refresh:1;url=/public/login");//注销完成,1秒之后跳转。这里需注意,一定要有一个前端页面的跳转,方便用户给ucenter发送注销后的信息
echo $success_content;
exit;
OK,本次修改主要围绕注销登陆来说的,至于修改用户信息的同步,自己根据自己的代码流程来改吧,所有调用到的函数应该都在:uc_client/client.php里面。
注:好久没有发过原创的技术博文了,今天编辑完,感觉超爽!
PHP技术交流QQ群:422137578
除非注明,文章均为 PHP二次开发 原创,转载请注明本文地址:http://www.php2.cc/article-1349-1.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
