ThinkPHP6通过Ucenter实现注册登录的示例代码
在和ucenter通信成功后,实现注册登录就非常简单了。简要记录如下。
1新建一个controller用来继承Ucenter\Controller\UcController,并新建构造方法,用来实例化UcController
init(); } }
2indexcontroller添加uc类变量。
private$uc;
3index方法中实例化uc控制器,对UCenter接口的操作通过$this->uc来完成。
$this->uc=newuc();
以上两步完成后,就可以在代码合适的地方调用ucenter接口进行注册登录了。以下是我项目中的代码片段,仅供参考。
4注册时验证用户名是否已经存在以及是否合法
$username=$data['Content'];
$result=$this->uc->uc_check_name($username);
switch($result){
case-1:
$reason="用户名不合法";
break;
case-2:
$reason="包含不允许注册的词语";
break;
case-3:
$reason="用户名已经存在";
break;
}
if($result!=1){
$this->_resetStep();
returnarray(join("\n",array_merge(array('【注册】注册失败',$reason),$this->_guestActions()
)),
'text');
}else{
$this->_setStep(self::STEP_REGISTER_PASSWORD);
Session::set('username',$data['Content']);
returnarray('【注册】请输入密码','text');
}
}
5输入密码后调用ucenter进行注册,因为ucenter注册时必带username,password,email,所以需要为用户生成默认的email
//注册->输入密码
if($this->_currentStep()==self::STEP_REGISTER_PASSWORD){
$this->_resetStep();
Session::set('password',$data['Content']);
//callucentertoregisteruser
$username_valid=$this->uc->uc_check_name(Session::get('username'));
Log::write('$username_valid'.$username_valid,'debug');
if($username_valid==1){
//register
Log::write('startregister'.Session::get('username'),'debug');
$email="reg_".substr(Session::getId(),0,3).time().substr(Session::getId(),7,4).
"@null.null";
//$email=Session::get('username').'@'.Session::get('username').'.com';
$register_result=$this->uc->uc_register(Session::get('username'),Session::get('password'),
$email);
Log::write('registerresultis'.$register_result,'debug');
switch($register_result){
case-1:
$reason="用户名不合法";
break;
case-2:
$reason="包含不允许注册的词语";
break;
case-3:
$reason="用户名已经存在";
break;
case-4:
$reason="Email格式有误";
break;
case-5:
$reason="Email不允许注册";
break;
case-6:
$reason="该Email已经被注册";
break;
}
if($register_result>0){
Log::write('Ucenterregistersuccessful'.Session::get('username'),'debug');
returnarray(join("\n",array_merge(array('【注册】注册成功'),$this->_guestActions())),'text');
}else{
Log::write('Ucenterregisterfailed'.$reason,'debug');
$this->_resetSession();
returnarray(join("\n",array_merge(array('【注册】注册失败',$reason),$this->_guestActions()
)),
'text');
}
}
}
6登录时传入用户输入的用户名和密码即可。登陆成功后将用户名和密码写入session文件。
$result=$this->uc->uc_login(Session::get('username'),$data['Content']);
到此这篇关于ThinkPHP6通过Ucenter实现注册登录的示例代码的文章就介绍到这了,更多相关ThinkPHP6Ucenter注册登录内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。