Maison développement back-end tutoriel php Yii2 Opération de mot de passe oublié basée sur la vérification de l'e-mail

Yii2 Opération de mot de passe oublié basée sur la vérification de l'e-mail

Apr 19, 2018 pm 02:42 PM
yii2 忘记 验证

Le contenu de cet article concerne l'opération de mot de passe oublié de Yii2 basée sur la vérification des e-mails. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

J'en ai parlé. envoi d'e-mails avant la fonction, nous allons maintenant utiliser la fonction d'envoi d'e-mails pour faire une petite démo

Déterminons d'abord quel processus nous devons effectuer pour réaliser le mot de passe oublié

1. 弹出窗口,提示用户输入用户名和邮箱。2. 验证邮箱,利用md5等等加密拼接token,发送token,当前时间戳,账户名等属性。3. 用户点击邮箱链接,到指定控制器,验证我们的token和时间是否超时。4. 如果都验证成功,则进入修改密码操作
Copier après la connexion
Copier après la connexion
  1. Si vous cliquez sur Mot de passe oublié et nous entrerons la méthode correspondante du contrôleur actuel.
    Vérifiez l'e-mail et le nom d'utilisateur saisis par l'utilisateur. Si la vérification réussit, effectuez notre opération d'envoi d'e-mail

//模型文件代码
 public function seekPass($post)
    {
        $this->scenario = "seekPass";        if($this->load($post)&&$this->validate())
        {        $time = time();        $adminuser = $post['Admin']['adminuser'];        
        $token  = $this->createToken($post['Admin']['adminuser'],$time);     
        //自定义方法,创建一个唯一token
        $mailer = \Yii::$app->mailer->compose('seekpass',['text'=>'text','adminuser'=>$post['Admin']['adminuser'],'token'=>$_SERVER['HTTP_HOST'].Url::toRoute(['manage/emailchangepass'])."&timestamp=".$time."&token=".$token."&adminuser=".$adminuser]);            
        $mailer ->setFrom("1115007981@qq.com")
                    ->setTo("1115007981@qq.com")
                    ->setSubject("黑势力科技")
                    ->send();        if($mailer)            return true;
        }        return false;
    }    //拼接的邮箱地址为:

    http://web.demo.com/shop/access/backend/web/index.php?r=manage/Femailchangepass×tamp=1524052534&token=4575d5050f57baf4a896c3924d972c12&adminuser=admin
Copier après la connexion
  1. Si nous cliquons sur l'adresse e-mail épissée, nous entrerons ensuite la méthode emailchangepass dans notre contrôleur de gestion et transmettrons nos attributs de jeton, d'heure et d'administrateur via la méthode GET
    dans le contrôleur

    dans la couche modèle, nous avons besoin La seule méthode à écrire est la méthode changepass(). Vérifiez que la méthode updateAll() est appelée avec succès

    • Nous devons vérifier l'actualité de notre temps. La connexion échoue après 5 minutes

    • .

      Nous devons Pour vérifier si le jeton est le jeton que nous avons initialement créé

    • nous devons identifier s'il existe actuellement une requête POST. S'il y en a, cela signifie que l'utilisateur. a saisi un mot de passe modifié et vous devez saisir le fichier modèle pour vérifier le mot de passe. Règles

       public function actionEmailchangepass(){
         $this->layout='login';       $time =  Yii::$app->request->get('timestamp');       
         $adminuser = Yii::$app->request->get('adminuser');       $token =  Yii::$app->request->get('token');       $model = new Admin();       $mytoken =  $model->createToken($adminuser,$time);       if($token!=$mytoken)
             {           $this->redirect(['public/login']);
                 Yii::$app->end();
             }       if(time()-$time>300)
             {           $this->redirect(['public/login']);
                 Yii::$app->end();
             }   if(Yii::$app->request->isPost)
         {       $post = Yii::$app->request->post();      if ($model->changepass($post))
            {
                Yii::$app->session->setFlash('info','密码修改成功');
            }
         }   $model->adminuser = $adminuser;   return $this->render('emailchangepass',['model'=>$model]);
      }
      Copier après la connexion

Cela met fin à ce partage.

J'ai déjà parlé de la fonction d'envoi d'e-mails, nous allons maintenant utiliser la fonction d'envoi d'e-mails pour faire une petite démo

Déterminons d'abord quel processus nous devons effectuer pour oublier le mot de passe

1. 弹出窗口,提示用户输入用户名和邮箱。2. 验证邮箱,利用md5等等加密拼接token,发送token,当前时间戳,账户名等属性。3. 用户点击邮箱链接,到指定控制器,验证我们的token和时间是否超时。4. 如果都验证成功,则进入修改密码操作
Copier après la connexion
Copier après la connexion
  1. Si vous cliquez sur Mot de passe oublié, nous entrerons la méthode correspondante du contrôleur actuel.
    Vérifiez l'e-mail et le nom d'utilisateur saisis par l'utilisateur. Si la vérification réussit, effectuez notre opération d'envoi d'e-mail

//模型文件代码
 public function seekPass($post)
    {
        $this->scenario = "seekPass";        if($this->load($post)&&$this->validate())
        {        $time = time();        $adminuser = $post['Admin']['adminuser'];        $token  = $this->createToken($post['Admin']['adminuser'],$time);     //自定义方法,创建一个唯一token
        $mailer = \Yii::$app->mailer->compose('seekpass',['text'=>'text','adminuser'=>$post['Admin']['adminuser'],'token'=>$_SERVER['HTTP_HOST'].Url::toRoute(['manage/emailchangepass'])."&timestamp=".$time."&token=".$token."&adminuser=".$adminuser]);            $mailer ->setFrom("1115007981@qq.com")
                    ->setTo("1115007981@qq.com")
                    ->setSubject("黑势力科技")
                    ->send();        if($mailer)            return true;
        }        return false;
    }    //拼接的邮箱地址为:

    http://web.demo.com/shop/access/backend/web/index.php?r=manage/Femailchangepass×tamp=1524052534&token=4575d5050f57baf4a896c3924d972c12&adminuser=admin
Copier après la connexion
  1. Si nous cliquons sur l'adresse e-mail épissée, nous entrerons ensuite la méthode emailchangepass dans notre contrôleur de gestion et transmettrons nos attributs de jeton, d'heure et d'administrateur via la méthode GET
    dans le contrôleur

    dans la couche modèle, nous avons besoin La seule méthode à écrire est la méthode changepass(). Vérifiez que la méthode updateAll() est appelée avec succès

    • Nous devons vérifier l'actualité de notre temps. La connexion échoue après 5 minutes

    • .

      Nous devons Pour vérifier si le jeton est le jeton que nous avons initialement créé

    • nous devons identifier s'il existe actuellement une requête POST. S'il y en a, cela signifie que l'utilisateur. a saisi un mot de passe modifié et vous devez saisir le fichier modèle pour vérifier le mot de passe. Règles

       public function actionEmailchangepass(){
         $this->layout='login';       $time =  Yii::$app->request->get('timestamp');       $adminuser = Yii::$app->request->get('adminuser');       $token =  Yii::$app->request->get('token');       $model = new Admin();       $mytoken =  $model->createToken($adminuser,$time);       if($token!=$mytoken)
             {           $this->redirect(['public/login']);
                 Yii::$app->end();
             }       if(time()-$time>300)
             {           $this->redirect(['public/login']);
                 Yii::$app->end();
             }   if(Yii::$app->request->isPost)
         {       $post = Yii::$app->request->post();      if ($model->changepass($post))
            {
                Yii::$app->session->setFlash('info','密码修改成功');
            }
         }   $model->adminuser = $adminuser;   return $this->render('emailchangepass',['model'=>$model]);
      }
      Copier après la connexion

      Cela met fin à ce partage.

      Recommandations associées :

      Vérification de l'autorisation de réinitialisation Yii2

      Yii2.0 PHP utilisant Sphinx

      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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment vérifier la signature dans un PDF Comment vérifier la signature dans un PDF Feb 18, 2024 pm 05:33 PM

Nous recevons généralement des fichiers PDF du gouvernement ou d'autres agences, certains avec des signatures numériques. Après avoir vérifié la signature, nous voyons le message SignatureValid et une coche verte. Si la signature n'est pas vérifiée, la validité est inconnue. La vérification des signatures est importante, voyons comment le faire en PDF. Comment vérifier les signatures au format PDF La vérification des signatures au format PDF le rend plus fiable et le document est plus susceptible d'être accepté. Vous pouvez vérifier les signatures dans les documents PDF des manières suivantes. Ouvrez le PDF dans Adobe Reader Cliquez avec le bouton droit sur la signature et sélectionnez Afficher les propriétés de la signature Cliquez sur le bouton Afficher le certificat du signataire Ajoutez la signature à la liste des certificats de confiance à partir de l'onglet Confiance Cliquez sur Vérifier la signature pour terminer la vérification.

Méthode détaillée pour débloquer à l'aide de la vérification assistée par un ami WeChat Méthode détaillée pour débloquer à l'aide de la vérification assistée par un ami WeChat Mar 25, 2024 pm 01:26 PM

1. Après avoir ouvert WeChat, cliquez sur l'icône de recherche, entrez dans l'équipe WeChat et cliquez sur le service ci-dessous pour entrer. 2. Après avoir entré, cliquez sur l'option outil libre-service dans le coin inférieur gauche. 3. Après avoir cliqué, dans les options ci-dessus, cliquez sur l'option de déblocage/appel pour vérification auxiliaire.

Comment vérifier si l'entrée est constituée de caractères pleine chasse dans Golang Comment vérifier si l'entrée est constituée de caractères pleine chasse dans Golang Jun 25, 2023 pm 02:03 PM

Dans Golang, le codage Unicode et le type de rune sont requis pour vérifier si l'entrée est constituée de caractères pleine chasse. Le codage Unicode est une norme de codage de caractères qui attribue un point de code numérique unique à chaque caractère du jeu de caractères, qui comprend des caractères pleine chasse et des caractères demi-chasse. Le type rune est le type utilisé pour représenter les caractères Unicode en golang. La première étape consiste à convertir l’entrée en une tranche de type rune. Cela peut être converti en utilisant le type []rune de Golang, par exemple.

Comment valider le code IFSC à l'aide d'expressions régulières ? Comment valider le code IFSC à l'aide d'expressions régulières ? Aug 26, 2023 pm 10:17 PM

Le Code du système financier indien est l'abréviation. Les succursales des banques indiennes participant au système de transfert électronique de fonds sont identifiées par un code spécial à 11 caractères. La Reserve Bank of India utilise ce code dans les transactions Internet pour transférer des fonds entre banques. Le code IFSC est divisé en deux parties. Les banques sont identifiées par les quatre premiers caractères, tandis que les succursales sont identifiées par les six derniers caractères. NEFT (National Electronic Funds Transfer), RTGS (Real Time Gross Settlement) et IMPS (Immediate Payment Service) sont quelques-unes des transactions électroniques qui nécessitent des codes IFSC. Méthode Voici quelques méthodes courantes pour valider les codes IFSC à l'aide d'expressions régulières : Vérifiez si la longueur est correcte. Vérifiez les quatre premiers caractères. Vérifiez le cinquième caractère. Che

Comment vérifier si l'entrée est en majuscules dans Golang Comment vérifier si l'entrée est en majuscules dans Golang Jun 24, 2023 am 09:06 AM

Golang est un langage de programmation moderne et performant qui implique souvent le traitement de chaînes dans le développement quotidien. Parmi eux, valider si la saisie est en lettres majuscules est une exigence courante. Cet article explique comment vérifier si l'entrée est constituée de lettres majuscules dans Golang. Méthode 1 : utilisez le package Unicode Le package Unicode de Golang fournit une série de fonctions pour déterminer le type de codage des caractères. Pour les lettres majuscules, la plage de codage correspondante est 65-90 (décimal), nous pouvons donc utiliser Unicode

Nouvelles fonctionnalités de PHP 8 : ajout de la vérification et de la signature Nouvelles fonctionnalités de PHP 8 : ajout de la vérification et de la signature Mar 27, 2024 am 08:21 AM

PHP8 est la dernière version de PHP, apportant plus de commodité et de fonctionnalités aux programmeurs. Cette version met un accent particulier sur la sécurité et les performances, et l'une des nouvelles fonctionnalités remarquables est l'ajout de capacités de vérification et de signature. Dans cet article, nous examinerons de plus près ces nouvelles fonctionnalités et leurs utilisations. La vérification et la signature sont des concepts de sécurité très importants en informatique. Ils sont souvent utilisés pour garantir que les données transmises sont complètes et authentiques. La vérification et les signatures deviennent encore plus importantes lorsqu'il s'agit de transactions en ligne et d'informations sensibles, car si quelqu'un est capable de falsifier les données, cela pourrait potentiellement

Authentification à l'aide de Google reCAPTCHA en PHP Authentification à l'aide de Google reCAPTCHA en PHP Jun 19, 2023 pm 05:38 PM

Dans le monde en ligne moderne, la sécurité des sites Web et la protection de la vie privée des utilisateurs sont devenues des sujets de plus en plus importants. Parmi eux, la méthode technique de vérification homme-machine est devenue l’un des moyens indispensables pour prévenir les attaques malveillantes. GooglereCAPTCHA est un outil largement utilisé pour la vérification homme-machine. Son concept est profondément ancré dans le cœur des gens et sa présence est même visible sur de nombreux sites Web que nous utilisons quotidiennement. Dans cet article, nous explorerons comment utiliser GooglereCAPTCHA pour la vérification en PHP

Comment vérifier si l'entrée est composée uniquement de caractères chinois en golang Comment vérifier si l'entrée est composée uniquement de caractères chinois en golang Jun 24, 2023 am 09:16 AM

Avec l'évolution des temps, nous accordons de plus en plus d'attention à la vérification des données, en particulier à la vérification des entrées des utilisateurs. Pour la vérification de la langue, la manière de déterminer avec précision si l'entrée est uniquement composée de caractères chinois est devenue une question importante. En Golang, nous pouvons utiliser le package Unicode et le package regexp pour répondre à cette exigence. 1. Package Unicode Le package Unicode fournit une série de supports de base pour Unicode. Nous pouvons utiliser les fonctions de ce package pour déterminer avec précision si un caractère est un caractère chinois.

See all articles