Maison  >  Article  >  cadre php  >  Comment réaliser l'enregistrement et la connexion dans ThinkPHP6 via Ucenter

Comment réaliser l'enregistrement et la connexion dans ThinkPHP6 via Ucenter

藏色散人
藏色散人avant
2021-03-10 15:27:432790parcourir

La colonne tutorielle suivante de thinkphp vous présentera comment vous inscrire et vous connecter à ThinkPHP6 via Ucenter. J'espère qu'elle sera utile aux amis dans le besoin !

ThinkPHP6 réalise l'inscription et la connexion via Ucenter

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']);

Recommandations associées : Les 10 derniers didacticiels vidéo thinkphp

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer