当前位置: 首页 > 后端技术 > PHP

ThinkPHP6通过Ucenter实现注册登录

时间:2023-03-30 03:33:11 PHP

与ucenter通信成功后,实现注册登录就非常简单了。简要记录如下。1新建controller继承Ucenter\Controller\UcController,新建构造方法实例化UcControllerinit();}}2索引控制器添加uc类变量。private$uc;3在index方法中实例化uc控制器,通过$this->uc完成对UCenter界面的操作。$this->uc=newuc();以上两步完成后,就可以在代码中合适的地方调用ucenter的接口进行注册登录了。以下是我项目中的一段代码,仅供参考。4注册时验证用户名是否已经存在且合法$username=$data['Content'];$result=$this->uc->uc_check_name($用户名);switch($result){case-1:$reason="用户名无效";休息;case-2:$reason="包含不允许注册的词";休息;case-3:$reason="用户名已经存在";休息;}if($result!=1){$this->_resetStep();returnarray(join("\n",array_merge(array('【注册】注册失败',$reason),$this->_guestActions())),'text');}else{$this->_setStep(self::STEP_REGISTER_PASSWORD);Session::set('用户名',$data['内容']);returnarray('【注册】请输入密码','text');}}5输入密码后,调用ucenter注册,因为ucenter注册时必须带上用户名,密码,邮箱,所以需要为用户生成一个默认邮箱//register->enterpasswordif($this->_currentStep()==self::STEP_REGISTER_PASSWORD){$this->_resetStep();Session::set('密码',$data['Content']);//调用ucenter注册用户$username_valid=$this->uc->uc_check_name(Session::get('username'));Log::write('$username_valid'.$username_valid,'debug');if($username_valid==1){//registerLog::write('开始注册'.Session::get('username'),'debug');$email="reg_".substr(Session::getId(),0,3).time().substr(Session::getId(),7,4)。“@null.null”;//$email=Session::get('用户名').'@'.Session::get('用户名').'.com';$register_result=$this->uc->uc_注册(Session::get('用户名'),Session::get('密码'),$email);Log::write('注册结果为'.$register_result,'debug');switch($register_result){case-1:$reason="用户名无效";休息;case-2:$reason="包含不允许注册的词";休息;case-3:$reason="用户名已经存在";休息;case-4:$reason="邮件格式错误";休息;case-5:$reason="邮箱不允许注册";休息;case-6:$reason="邮箱已经被注册过";休息;}如果($register_result>0){Log::write('Ucenter注册成功'.Session::get('username'),'debug');returnarray(join("\n",array_merge(array('【register】注册成功'),$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']);