Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Laravel Automatic Password Hashing

Par Lauris HOUNKPEVI Publié le 22/04/2020 à 03:55:03 Noter cet article:
(0 votes)
En attente de relecture par le comité de lecture

Introduction

L'utilisation de mutateurs pour définir des propriétés dans vos modèles peut vraiment nettoyer votre code. Dans cet extrait, nous allons examiner un exemple de hachage automatique de mots de passe et voir à quel point nos contrôleurs finissent par être plus propres.

Créer un utilisateur sans mutateurs

En principe, nous pouvons enregistrer un compte d'utilisateur directement auprès du responsable du traitement, comme ceci :

      public function store(Request $request)
 {
    User::create([
      'name' => $request->name,
      'email' => $request->email,
      'password' => $request->password
    )];
 }
      

Bien sûr, nous ne voulons pas stocker le mot de passe en texte clair dans la base de données (ne faites JAMAIS cela). Il suffit de hacher le mot de passe, il devient :

      public function store(Request $request)
 {
    User::create([
      'name' => $request->name,
      'email' => $request->email,
      'password' => Hash::make($request->password)
    ]);
 }
      

Nous pouvons le rendre un peu plus propre :

      public function store(Request $request)
 {
   User::create(array_merge('name','email'),[
     'password' => Hash::make($request->password)
   ]);
 }
    

Créer un utilisateur avec un mutateur

Avec le mutateur, le compte de l'utilisateur enregistré devient très propre. Nous avons encore besoin de notre méthode de contrôle :

        public function store(Request $request)
 {
    User::create(
      $request->only('name','email','password')
    );
 }

L'utilisateur sera enregistré mais avec un mot de passe en texte clair. Pour remédier à cela, nous allons créer dans un modèle d'utilisateur la fonction setPasswordAttribute().

  public function setPasswordAttribute($password)
 {
   if (trim($password) === '') {
      return;
   }
   $this->attributes['password'] = Hash::make($password)
 }

Conclusion

Voilà, c'est ainsi que les mutants rendent les choses beaucoup plus propres.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels