S'inscrire
Dans le modèle avancé, entrez dans la page frontend/index.php?r=site%2Fsignup et vous pourrez voir la page d'inscription du framework
Après avoir rempli le nom d'utilisateur, l'e-mail et le mot de passe et cliqué sur Inscription, si le format est incorrect, la fonction Rules() dans frontend/models/SignuForm effectuera une vérification préliminaire après. tous les formats sont corrects, Les données sont transférées vers la fonction actionSignup() dans frontend/controllers/SiteController. La fonction charge les informations d'inscription saisies par l'utilisateur dans frontend/models/SignupForm. 🎜>Le texte cité ci-dessous est la fonction d'explication. Les détails spécifiques qu'il contient n'affecteront pas l'ensemble si vous ne le lisez pas. Parce qu'il n'y a pas de fonction de texte pliant, la méthode de citation est utilisée comme ci-dessous. >
if (!$this->validate()) { return null; }La fonction signup() appelle d'abord la fonction validate() dans yii2/base/Model
La première étape consiste à effacer le message d'erreur lorsque l'utilisateur saisit à l'aide de la fonction Rules() dans frontend/models. /SignuForm
if ($clearErrors) { $this->clearErrors(); }
La deuxième étape est que la fonction beforeValidate() déclenche l'événement beforeValidate et renvoie true
$attributeNames = $this->activeAttributes();renvoie tableau après exécution (3) { [0]=> > string(5) "email" [2]=> string(8) >"password" }
La cinquième étape, $this->getActiveValidators() obtiendra le 11 règles de validation dans Rules() dans frontend/models/SignuForm pour validerAttributes() pour vérification
Non. Six étapes, exécutez la fonction afterValidate() pour déclencher l'événement afterValidate
Enfin, si toutes les vérifications réussissent, $this->hasErrors() est faux, donc la fonction renvoie finalement vrai
Jetons un coup d'œil au champ utilisateur dans la table de données
L'utilisateur a saisi son nom d'utilisateur, son mot de passe et son adresse e-mail. Comment le framework Yii2 génère-t-il d'autres champs ? qui se trouve dans common/models/User. La fonction setPassword appelle la fonction generatePasswordHash de chaque règle dans yii2/base/Security.
if (function_exists('password_hash')) { /** @noinspection PhpUndefinedConstantInspection */ return password_hash($password, PASSWORD_DEFAULT, ['cost' => $cost]); }S'il y en a, utilisez la fonction password_hash pour le cryptage. Si PHP n'a pas de fonction password_hash, utilisez la fonction crypt pour le cryptage. Le jugement initial est qu'elle doit être compatible avec les versions PHP inférieures à 5.5. . Après tout, les versions supérieures à 5.5 commencent seulement à les avoir. La fonction password_hash common/models/User's signup() continuera à générer une clé d'authentification après avoir crypté le mot de passe. lorsque l'utilisateur clique sur Se souvenir de moi lors de la connexion. La méthode de génération de clé d'authentification est également generateRandomString dans yii2/base/Security appelle la fonction generateRandomKey. Si votre version de PHP est 5.2~5.6 ou 7, utilisez. random_bytes pour générer une chaîne de section de 32 mots, sinon, lorsque le système que vous utilisez est Windows et qu'OpenSSL est installé, la fonction openssl_random_pseudo_bytes sera appelée pour la générer. Si vous n'installez pas OpenSSL, mcrypt_create_iv sera utilisé pour la générer. .
Si le système que vous utilisez n'est pas Windows, vous devez appeler /dev/urandom. Le système FreeBSD est spécial. Il appellera /dev/random, puis appellera la méthode stream_set_read_buffer pour générer un. Fichier de caractères de 8 octets. Après la génération, lisez 32 octets dans le fichier via la fonction fread, puis renvoyez les données.
password_reset_token est vide lorsque l'utilisateur s'inscrit. Il est généré lorsque l'utilisateur oublie le mot de passe et clique sur le réinitialiser sur la page de connexion. Il est utilisé pour la vérification après l'envoi d'un e-mail à l'utilisateur pour réinitialiser le mot de passe.
le statut est défini dans common/models/User
const STATUS_DELETED = 0; const STATUS_ACTIVE = 10;Le statut par défaut dans les règles lorsque l'enregistrement de l'utilisateur est 10,
created_time et update_time sont également dans common/models/. La fonction behaviors() dans User génère
données utilisateur qui sont vérifiées comme étant qualifiées, plus les données générées par le framework, puis stockées dans la table utilisateur des données.
framework yii
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!