Heim  >  Artikel  >  PHP-Framework  >  So realisieren Sie die Registrierung und Anmeldung in ThinkPHP6 über Ucenter

So realisieren Sie die Registrierung und Anmeldung in ThinkPHP6 über Ucenter

藏色散人
藏色散人nach vorne
2021-03-10 15:27:432711Durchsuche

In der folgenden Tutorial-Kolumne von thinkphp erfahren Sie, wie Sie sich über Ucenter bei ThinkPHP6 registrieren und anmelden. Ich hoffe, dass es Freunden in Not hilfreich sein wird!

ThinkPHP6 realisiert die Registrierung und Anmeldung über Ucenter

Nach erfolgreicher Kommunikation mit ucenter ist die Registrierung und Anmeldung sehr einfach. Es folgt eine kurze Aufzeichnung.

1 Erstellen Sie einen neuen Controller, um UcenterControllerUcController zu erben, und erstellen Sie eine neue Konstruktormethode zum Instanziieren von UcController

<?php
declare (strict_types = 1);

namespace app\controller;

use Ucenter\Controller\UcController;
class uc extends UcController
{
    /**
     * 构造方法,用于实例化 UcController
     */
    public function __construct(){
        $this->init();
    }
}

2 Der Index-Controller fügt UC-Klassenvariablen hinzu.
private $uc;private $uc;

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

3 Instanziieren Sie den UC-Controller in der Indexmethode und bedienen Sie die UCenter-Schnittstelle über $this->uc.

$this->uc = new uc();

Nach Abschluss der beiden oben genannten Schritte können Sie die ucenter-Schnittstelle an der entsprechenden Stelle im Code aufrufen, um sich zu registrieren und anzumelden. Unten finden Sie einen Codeausschnitt aus meinem Projekt, der nur als Referenz dient.

4 Überprüfen Sie bei der Registrierung, ob der Benutzername bereits vorhanden und zulässig ist.

                $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 Rufen Sie nach Eingabe des Passworts ucenter an, um sich zu registrieren. Da ucenter bei der Registrierung Benutzername, Passwort und E-Mail angeben muss, muss eine Standard-E-Mail für generiert werden user

            //注册->输入密码
            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 Geben Sie einfach den Benutzernamen und das Passwort ein, die der Benutzer beim Anmelden eingegeben hat. Schreiben Sie nach erfolgreicher Anmeldung den Benutzernamen und das Passwort in die Sitzungsdatei.
$result = $this->uc->uc_login(Session::get('username'), $data['Content']);

Verwandte Empfehlungen:

Die neuesten 10 Thinkphp-Video-Tutorials
🎜🎜

Das obige ist der detaillierte Inhalt vonSo realisieren Sie die Registrierung und Anmeldung in ThinkPHP6 über Ucenter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen