jekeyhui99 发表于 2015-11-10 18:03:48

使用ucenter在第三方应用中实现同步注册与登录

首先到康盛官网下载UCenter 1.6.0,点此下载 下载解压安装(安装Ucenter时只需要upload目录中的文件),接下来将advanced目录下的uc_client目录和advanced/examples/目录下的api目录 include目录以及文件config.inc.php拷贝到应用(你的网站)的跟目录,文件如下图:
http://www.com133.com/Public/Uploads/upimages/20120822/1345650716.png
可将config.inc.php中的代码清空,下面会提到如何修改此文件中的代码
登陆ucenter后台->应用管理->添加新应用
http://www.com133.com/Public/Uploads/upimages/20120822/1345650805.jpghttp://www.com133.com/Public/Uploads/upimages/20120822/1345650840.jpg
填写完点击提交 提示成功添加应用,在页面最下方找到
http://www.com133.com/Public/Uploads/upimages/20120822/1345650890.png
拷贝到config.inc.php中(将config.inc.php中的内容全部删除后覆盖即可)
再将以下代码也拷贝到config.inc.php中 (需要拷贝在文件末尾)
$dbhost = UC_DBHOST;            // 数据库服务器
$dbuser = UC_DBUSER;            // 数据库用户名
$dbpw = UC_DBPW;                // 数据库密码
$dbname = UC_DBNAME;            // 数据库名
$pconnect = 0;                // 数据库持久连接 0=关闭, 1=打开
$tablepre = UC_DBTABLEPRE;         // 表名前缀
$dbcharset = UC_DBCHARSET;            // MySQL 字符集, 可选 'gbk', 'big5', 'utf8'
//同步登录 Cookie 设置
$cookiedomain = '';             // cookie 作用域
$cookiepath = '/';            // cookie 作用路径
再回到应用管理会看到
http://www.com133.com/Public/Uploads/upimages/20120822/1345651001.png
在应用中实现同步注册与登录功能
同步注册
注册使用UCenter的统一注册函数uc_user_register(),如果注册成功则返回用户id,
返回用户id后,再在应用中同步写入数据
注册时要引入config.inc.php和uc_client/client.php两个文件(顺序不能颠倒)

[*]$uid = uc_user_register(
[*]    $_POST['username'],$_POST['password'],$_POST['email'
[*]);
[*]if($uid <= 0) {
[*]    if($uid == -1) {
[*]       echo '用户名不合法';
[*]       } elseif($uid == -2) {
[*]         echo '包含要允许注册的词语';
[*]       } elseif($uid == -3) {
[*]         echo '用户名已经存在';
[*]       } elseif($uid == -4) {
[*]         echo 'Email 格式有误';
[*]       } elseif($uid == -5) {
[*]         echo 'Email 不允许注册';
[*]       } elseif($uid == -6) {
[*]                echo '该 Email 已经被注册';
[*]       } else {
[*]                echo '未定义';
[*]       }
[*]   }else {
[*]            $username = $_POST['username'];
[*]   }
[*]    if($username) {
[*]      //这里同步应用数据库(将注册信息写入到应用数据库中)
[*]    }

登陆
登陆使用
list($uid, $username, $password, $email) =
uc_user_login($_POST['username'], $_POST['password']);
判断返回的$uid是否大于0
如果$uid == -1 表示用户不存在,$uid == -2 密码错误 其他小于0的值未定义
如果大于0说明ucenter系统中是存在该用户的,然后判断本应用中是否存在该用户,如果也存在则设置登陆状态
同时调用全局登陆方法
$ucsynlogin = uc_user_synlogin($uid); //将返回值输出即可
退出比较简单
$ucsynlogout = uc_user_synlogout();//同步退出代码本文用到的ucenter 1.6 也可以 点此下载
页: [1]
查看完整版本: 使用ucenter在第三方应用中实现同步注册与登录