1、当你在你站点下的【某一个应用】下注册的时候,第一步首先是去ucenter下注册的
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'];
}
其中的这个uc_user_register又调用usercontrol类的onregister方法,如下
PHP代码
function onregister() {
$this->init_input();
$username = $this->input(‘username’);
$password = $this->input(‘password’);
$email = $this->input(‘email’);
$questionid = $this->input(‘questionid’);
$answer = $this->input(‘answer’);
if(($status = $this->_check_username($username)) < 0) {
return $status;
}
if(($status = $this->_check_email($email)) < 0) {
return $status;
}
$uid = $_ENV['user']->add_user($username, $password, $email, 0, $questionid, $answer);
return $uid;
}
其中又调用usermodel的add_user方法
PHP代码
function add_user($username, $password, $email, $uid = 0, $questionid = ”, $answer = ”) {
$salt = substr(uniqid(rand()), -6);
$password = md5(md5($password).$salt);
$sqladd = $uid ? “uid=’”.intval($uid).”‘,” : ”;
$sqladd .= $questionid > 0 ? ” secques=’”.$this->quescrypt($questionid, $answer).”‘,” : ” secques=”,”;
$this->db->query(“INSERT INTO “.UC_DBTABLEPRE.”members SET $sqladd username=’$username’, password=’$password’, email=’$email’, regip=’”.$this->base->onlineip.”‘, regdate=’”.$this->base->time.”‘, salt=’$salt’”);
$uid = $this->db->insert_id();
$this->db->query(“INSERT INTO “.UC_DBTABLEPRE.”memberfields SET uid=’$uid’”);
return $uid;
}
可见,执行这个操作后,UC_DBTABLEPRE.”members 表中就会多条用户记录了
2、在自己的应用中注册
PHP代码
if($username) {
$db->query(“INSERT INTO {$tablepre}members (uid,username,admin) VALUES (‘$uid’,'$username’,'0′)”);
//注册成功,设置 Cookie,加密直接用 uc_authcode 函数,用户使用自己的函数
setcookie(‘Example_auth’, uc_authcode($uid.”\t”.$username, ‘ENCODE’));
echo ‘注册成功<br><a href=”‘.$_SERVER['PHP_SELF'].’”>继续</a>’;
exit;
}
这样之后,example_members表中也就有条用户记录了。。
至此实现了,【同步注册】了。。。
3、不过还没完。。。虽然我们在ucenter和当前应用中都注册了用户了。。。那么【其它应用】咋办呢??
呵呵,别急,还有【激活】没讲呢。。
当你在别的网站,用这个账号第一次登陆的时候,会请求
PHP代码
list($uid, $username, $password, $email) = uc_user_login($_POST['username'], $_POST['password']);
如果$uid > 0的话,会显示让你激活的链接,而通过这个激活链接点过去之后,就会绕过uc_user_register,而只在本应用的数据库插入一条用户记录。。。
使用UCenter整合应用 – 用户注册
原创
©著作权归作者所有:来自51CTO博客作者dreamboycx的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
详解ZooKeeper在微服务注册中心的应用
本文,我们将深入探讨ZooKeeper用做微服务注册中心的场景。
zookeeper 开源 分布式协调服务 分布式协调服务 -
MyBatis-Plus整合SpringBoot及使用
MyBatis-Plus整合SpringBoot及使用
MyBatis-Plus MyBatis-Plus的简单使用 -
ucenter同步用户登录
ucenter同步用户登录一般的我们在ucenter官方网站下载下来ucenter后,解压...
ucenter同步用户登录 php 单点登录 数据同步 mysql -
【畅购商城】用户注册以及整合JWT
用户注册、整合JWT
1024程序员节 java 验证码 redis -
ucenter 整合同步登录的内部实现原理及thinkphp整合ucenterphp 数据 自动登陆 传递数据 应用程序
-
java ucenter同步注册 激活 java登陆注册功能
集合实现注册登陆功能第一步: 提示用户选择功能, A(注册) B(登陆) 。 要求: 功能选择 的时候要忽略大小写。 注册: 1. 提示用户输入注册的账号(数字)与密码, 如果输入的id号已经存在集合中,提示用户重新输入。 注册完毕之后,把集合中的所有用户信息打印出来。 (使用:toArrry()方法) 登
java ucenter同步注册 激活 java中集合实现注册登陆功能 System User 用户信息