Après une communication réussie avec ucenter, il est très simple de réaliser l'inscription et la connexion. Un bref compte rendu suit.
1 Créez un nouveau contrôleur pour hériter de UcenterControllerUcController et créez une nouvelle méthode de constructeur pour instancier UcController
<?php declare (strict_types = 1); namespace app\controller; use Ucenter\Controller\UcController; class uc extends UcController { /** * 构造方法,用于实例化 UcController */ public function __construct(){ $this->init(); } }
2 Le contrôleur d'index ajoute des variables de classe uc. private $uc;
3 Instanciez le contrôleur uc dans la méthode d'index et utilisez l'interface UCenter via $this->uc. $this->uc = new uc();
Une fois les deux étapes ci-dessus terminées, vous pouvez appeler l'interface ucenter à l'endroit approprié dans le code pour vous inscrire et vous connecter. Vous trouverez ci-dessous un extrait de code de mon projet à titre de référence uniquement.
4 Vérifiez si le nom d'utilisateur existe déjà et est légal lors de l'inscription
$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 Après avoir entré le mot de passe, appelez ucenter pour vous inscrire car ucenter doit apporter le nom d'utilisateur, le mot de passe et l'e-mail lors de l'inscription. doit être l'utilisateur Générer l'e-mail par défaut
//注册->输入密码 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. Il suffit de transmettre le nom d'utilisateur et le mot de passe saisis par l'utilisateur lors de la connexion. Après une connexion réussie, écrivez le nom d'utilisateur et le mot de passe dans le fichier de session.
$result = $this->uc->uc_login(Session::get('username'), $data['Content']);