Dans ce tutoriel nous allons ajouter un bouton de déconnexion à notre page /mon-compte
.
Ajout du bouton dans la vue
Nous allons ajouter dans la vue ressources/views/mon-compte.blade.php
.
@extends('layout')
@section('contenu')
<div class="section">
<h1 class="title is-1">Mon compte</h1>
<p>Vous êtes bien connecté.</p>
<a href="/deconnexion" class="button">Déconnexion</a>
</div>
@endsection
Création de la route
Dans le fichier routes/web.php
.
Route::get('/deconnexion', 'CompteController@deconnexion');
Création de la méthode du contrôleur
Ǹous pouvons utiliser la fonction auth()->logout()
pour déconnecter un utilisateur du système d'authentification de Laravel. Ensuite, nous pouvons le rediriger vers la page d'accueil.
public function deconnexion()
{
auth()->logout();
return redirect('/');
}
Correction du problème avec le remember_token
La fonction auth()->logout()
ne fonctionne pas car Laravel essaye de mettre à jour le remember_token
. Nous devons donc dire à Laravel que nous n'avons pas de colonne pour le remember_token
.
Pour cela, si nous regardons le trait Authenticatable
on voit que les deux fonctions concernant le remember_token
vérifie que la colonne n'est pas vide avant de faire quoi que ce soit. Nous n'avons plus qu'à modifier la fonction getRememberTokenName()
pour retourner une chaîne de caractère vide afin de dire à Laravel que nous n'avons pas cette fonctionnalité.
Dans notre modèle app/Utilisateur.php
:
/**
* Get the column name for the "remember me" token.
*
* @return string
*/
public function getRememberTokenName()
{
return '';
}
Tout devrait maintenant fonctionner.