Bouton de déconnexion

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.