Maison > cadre php > PensezPHP > le corps du texte

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

藏色散人
Libérer: 2021-03-11 09:00:37
avant
2795 Les gens l'ont consulté

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();
    }
}
Copier après la connexion

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');
                }
            }
Copier après la connexion

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

            }
Copier après la connexion

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']);
Copier après la connexion

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal