Laravel #9 - Connecter d'un utilisateur

Edité le 15/08/2020

Je vous rassure de suite, il n'est pas très difficile de connecter un utilisateur avec Laravel.

Pour commencer il vous faut... Un utilisateur !

 

Vous allez donc commencer par mettre en place une page d'inscription

Encore une fois, en autonomie, mettez en place une vue pour inscrire vos utilisateurs.

Quelques consignes pour rester cohérent :

  • Votre formulaire d'inscription devra contenir un nom, une adresse mail et un mot de passe
  • L'input du nom doit avoir un name="user_name"
  • L'input du mail doit avoir un name="user_email"
  • L'input du password doit avoir un name="password"

Si vous avez des doutes pour gérer votre formulaire, je vous conseil de relire ce tutoriel.

 

Pour enregistrer un utilisateur dans votre fonction du controller, commencez par importer le modèle des utilisateurs

use App\User;


Ensuite, vérifiez bien que la requête possède bien tout les champs et enregistrer l'utilisateur en base de donnée

public function register(Request $request){
        $request->validate([
            'user_name' => ['required'],
            'user_email' => ['required'],
            'user_password' => ['required'],
        ]);

        $user = new User;
        $user->name = $request->user_name;
        $user->email = $request->user_email;
        $user->password = bcrypt($request->user_password);
        $user->save();

        return redirect()->back();
}


Connecter l'utilisateur

Maintenant que vous pouvez enregistrer en utilisateur, vous allez encore une fois en autonomie mettre une vue avec un formulaire de connexion.

    Quelques consignes pour rester cohérent :

    • Le formulaire doit contenir un champ email et un champ mot de passe
    • L'input de l'adresse email doit avec un name="user_email"
    • L'input du mot de passe doit avoir un name="user_password"


    Dans le même controller que l'inscription, commencer par importer la classe Auth.

    use Illuminate\Support\Facades\Auth;
    


    Et enfin, créez une fonction connect :

    public function connect(Request $request)
    {
            $request->validate([
                'user_email' => ['required'],
                'user_password' => ['required'],
            ]);
    
            if (Auth::attempt(['email' => $request->user_email, 'password' => $request->user_password])) {
                return redirect('/');
            } else {
                return redirect()->back();
            }
    }


    Encore une fois nous vérifions la requête reçue, puis nous vérifions si la combinaison adresse email et mot de passe ont été trouvé en base de donnée. Si cette combinaison est trouvée en base de donnée, Laravel va retenir que cet utilisateur est connecté, sinon, prévenez l'utilisateur qu'il n'a pas pu se connecter. 


    Récupérer les informations d'un utilisateur

    Il est très facile d'avoir les informations concernant un utilisateur, par exemple si je veux récupérer l'adresse email, il suffit de faire :

    auth()->user()->email;
    


    Vérifier si un utilisateur est connecté

    Pour vérifier si un utilisateur est connecté, il suffit de faire Auth::check()

    Par exemple, dans notre vue, il est possible de faire :

    @if (\Auth::check())
        Bienvenue {{ auth()->user()->name }}
    @endif


    Déconnecter un utilisateur

    Encore une fois, on utilise Auth(), on rajoute logiquement logout, comme ceci :

    Auth::logout()


    Une fois le logout() appelé, auth() n'a plus d'utilisateur connecté et le check ne marcherait plus




    Dans le prochain tutoriel, nous allons voir les middleware

    Cet article a été vu 313 fois
    Laisser un commentaire:
    Laissez le premier commentaire..
    Laravel Débutant

    Laravel est un framework web open-source écrit en PHP respectant le principe modèle-vue-contrôleur et entièrement développé en programmation orientée objet. Laravel est distribué sous licence MIT, avec ses sources hébergées sur GitHub. En peu de temps, une communauté d'utilisateurs du framework s'est constituée, et il est devenu en 2016 le projet PHP le mieux noté de GitHub. Laravel reste pourtant basé sur son grand frère Symfony, pour au moins 30 % de ses lignes (utilisation de "Symfony component").

    # # # # # # # # # # # # # # # # # # # #