Registrieren
Geben Sie in der erweiterten Vorlage die Anmeldeseite frontend/index.php?r=site%2F ein und Sie können die Registrierungsseite des Frameworks sehen
Nachdem Sie den Benutzernamen, die E-Mail-Adresse und das Passwort eingegeben und auf „Anmelden“ geklickt haben, führt die Funktion „rules()“ in frontend/models/SignuForm eine vorläufige Überprüfung durch Alle Formate sind korrekt. Die Daten werden an die Funktion actionSignup() in frontend/controllers/SiteController übertragen. Die Funktion lädt die vom Benutzer eingegebenen Registrierungsinformationen in frontend/models/SignupForm,
Der unten zitierte Text ist die Erklärungsfunktion. Die darin enthaltenen spezifischen Details haben keinen Einfluss auf das Ganze, da es keine Falttextfunktion gibt
if (!$this->validate()) {
return null;
}
Nach dem Login kopieren
Die Funktion „signup()“ ruft zunächst die Funktion „validate()“ in yii2/base/Model Verification auf.
Der erste Schritt besteht darin, die Fehlermeldung zu löschen, wenn der Benutzer Eingaben mit der Funktion „rules()“ in „frontend/models/“ durchführt. SignuForm
if ($clearErrors) {
$this->clearErrors();
}
Nach dem Login kopieren
Der zweite Schritt besteht darin, dass die Funktion beforeValidate() das Ereignis beforeValidate auslöst und true zurückgibt
Im dritten Schritt legen Sie das Szenario fest, der Standardwert ist Standard
Die Vierter Schritt: Da die $attributeNames hier null sind, gibt
$attributeNames = $this->activeAttributes();
Nach dem Login kopieren
nach der Ausführung das Array
zurück (3) { [0]=> string(8) "username" [1]=> ; string(5) "email" [2]=> string(8) >"password" }
Der fünfte Schritt, $this->getActiveValidators(), erhält die 11. Validierung Regeln in Rules() in Frontend/Models/SignuForm für ValidationAttributes() zur Überprüfung
Sechs Schritte: Führen Sie die Funktion afterValidate() aus, um das AfterValidate-Ereignis auszulösen
Endlich , wenn alle Überprüfungen erfolgreich sind, ist $this->hasErrors() falsch, sodass die Funktion schließlich true zurückgibt
Werfen wir einen Blick auf das Benutzerfeld in der Datentabelle
Der Benutzer hat Benutzername, Passwort und E-Mail eingegeben. Wie generiert das Yii2-Framework zuerst die Passwortgenerierung in der Anmeldefunktion in SignupFrom? common/models/User. Die Funktion „setPassword“ ruft die Funktion „generatePasswordHash“ jeder Regel in yii2/base/Security auf.
if (function_exists('password_hash')) {
/** @noinspection PhpUndefinedConstantInspection */
return password_hash($password, PASSWORD_DEFAULT, ['cost' => $cost]);
}
Nach dem Login kopieren
Wenn ja, verwenden Sie die Funktion „password_hash“ zur Verschlüsselung. Wenn PHP keine Funktion „password_hash“ hat, verwenden Sie die Funktion „crypt“ zur Verschlüsselung. Das erste Urteil ist, dass sie mit PHP-Versionen vor 5.5 kompatibel sein muss . Schließlich verfügen Versionen über 5.5 erst über die Funktion „password_hash“
common/models/User's signup(), um nach der Verschlüsselung des Passworts weiterhin einen Authentifizierungsschlüssel zu generieren Wenn der Benutzer beim Anmelden auf „Mich erinnern“ klickt.
Die Methode zum Generieren des Authentifizierungsschlüssels lautet auch „generateRandomString“ in yii2/base/Security. Wenn Ihre PHP-Version 5.2~5.6 oder 7 ist, verwenden Sie random_bytes, um eine Abschnittszeichenfolge mit 32 Wörtern zu generieren. Wenn nicht, wird die Funktion openssl_random_pseudo_bytes aufgerufen, um sie zu generieren, wenn Sie Windows verwenden und OpenSSL installiert ist. Wenn Sie OpenSSL nicht installieren, wird mcrypt_create_iv zum Generieren verwendet .
Wenn das von Ihnen verwendete System nicht Windows ist, müssen Sie /dev/urandom aufrufen. Das System ist speziell. Es ruft /dev/random auf und ruft dann die Methode stream_set_read_buffer auf 8-Byte-Zeichendatei. Lesen Sie nach der Generierung 32 Bytes in der Datei über die Funktion fread und geben Sie dann die Daten zurück.
password_reset_token ist leer, wenn der Benutzer sich registriert. Es wird generiert, wenn der Benutzer das Passwort vergisst und auf der Anmeldeseite auf „Zurücksetzen“ klickt. Es wird zur Überprüfung verwendet, wenn das Passwort nach dem Senden einer E-Mail an den Benutzer zurückgesetzt wird.
Status wird in „Common/Models/User“ definiert.
const STATUS_DELETED = 0;
const STATUS_ACTIVE = 10;
Nach dem Login kopieren
Der Status in den Regeln ist standardmäßig 10, wenn sich ein Benutzer registriert.
Create_Time und Updated_Time sind ebenfalls in „Common/Models“ angegeben / Die Funktion „behaviours()“ in „Benutzer“ generiert
Benutzerdaten, die als qualifiziert überprüft werden, sowie die vom Framework generierten Daten und speichert sie dann in der Benutzertabelle der Daten.
Empfohlenes Lernen:
yii-Framework
Das obige ist der detaillierte Inhalt vonSo registrieren Sie sich bei yii. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!