• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ThinkPHP6通过Ucenter实现注册登录的示例代码

    在和ucenter通信成功后,实现注册登录就非常简单了。简要记录如下。

    1 新建一个controller用来继承Ucenter\Controller\UcController,并新建构造方法,用来实例化UcController

    ?php
    declare (strict_types = 1);
    
    namespace app\controller;
    
    use Ucenter\Controller\UcController;
    class uc extends UcController
    {
      /**
       * 构造方法,用于实例化 UcController
       */
      public function __construct(){
        $this->init();
      }
    }
    
    

    2 index controller添加uc类变量。

    private $uc;
    

    3 index方法中实例化uc控制器,对UCenter接口的操作通过$this->uc来完成。

    $this->uc = new uc();
    

    以上两步完成后,就可以在代码合适的地方调用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();
              return array(join("\n", array_merge(array('【注册】注册失败', $reason), $this->_guestActions()
              )),
                'text');
            } else {
              $this->_setStep(self::STEP_REGISTER_PASSWORD);
              Session::set('username', $data['Content']);
    
              return array('【注册】请输入密码', 'text');
            }
          }
    
    

    5 输入密码后调用ucenter进行注册,因为ucenter注册时必带username,password,email,所以需要为用户生成默认的email

          //注册->输入密码
          if ($this->_currentStep() == self::STEP_REGISTER_PASSWORD) {
            $this->_resetStep();
            Session::set('password', $data['Content']);
            //call ucenter to register user
            $username_valid = $this->uc->uc_check_name(Session::get('username'));
            Log::write('$username_valid' . $username_valid, 'debug');
            if ($username_valid == 1) {
              //register
              Log::write('start register ' . 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('register result is ' . $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('Ucenter register successful' . Session::get('username'), 'debug');
                return array(join("\n", array_merge(array('【注册】注册成功'), $this->_guestActions())), 'text');
              } else {
                Log::write('Ucenter register failed' . $reason, 'debug');
                $this->_resetSession();
                return array(join("\n", array_merge(array('【注册】注册失败', $reason), $this->_guestActions()
                )),
                  'text');
              }
            }
    
          }
    
    

    6 登录时传入用户输入的用户名和密码即可。登陆成功后将用户名和密码写入session文件。

    $result = $this->uc->uc_login(Session::get('username'), $data['Content']);

    到此这篇关于ThinkPHP6通过Ucenter实现注册登录的示例代码的文章就介绍到这了,更多相关ThinkPHP6 Ucenter注册登录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • ThinkPHP 5.x远程命令执行漏洞复现
    • ThinkPHP框架任意代码执行漏洞的利用及其修复方法
    • 对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
    • ThinkPHP的标签制作实例讲解
    • thinkphp的钩子的两种配置和两种调用方法
    • phpstudy的安装及ThinkPHP框架的搭建图文讲解
    • ThinkPHP6.0 重写URL去掉Index.php的解决方法
    • Thinkphp5+Redis实现商品秒杀代码实例讲解
    • 如何从防护角度看Thinkphp历史漏洞
    上一篇:php使用shmop函数创建共享内存减少负载的方法
    下一篇:php7和php5具体区别实例讲解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    ThinkPHP6通过Ucenter实现注册登录的示例代码 ThinkPHP6,通过,Ucenter,实现,