Créé en 2020 et modifié le 08 Oct 2020

Créé en 2020 et modifié le 08 Oct 2020

La gestion des utilisateurs avec Laravel

 

Partie 1 – bloquer les uri

Livrable : otelo/mission4/…

  • créer une vue indiquant que l’utilisateur doit s’authentifier
@extends('layouts.app')

@section('content')
<div class="jumbotron">
    <h2 class="my-5 text-center"> authentification nécessaire </h2>
</div>
 @stop

 

  • dans web.php, ajouter middleware(‘auth’) à la route de creation d’une réservation
Route::get('/newReservation',[ReservationController::class, 'create'] ->middleware('auth');
Route::get('/failure',function () {
    return view('failure');
})->name('failure');
  • dans middleware/Authenticate.php, modifier la fonction
if (! $request->expectsJson()) {
            return route('failure');
        }
  • tester la route, elle st sécurisé, il faudra s’authentifier.

Note

On peut aussi sécuriser toutes les routes d’un contrôleur en ajoutant dans celui ci

public function __construct(){
        $this->middleware('auth');
    }

La condition middleware(‘auth’) dans la route devient inutile

 

Partie 2 – système d’authentification

Livrable : otelo/mission4/…

  • Générer le squelette d’authentification
composer require laravel/ui
php artisan ui vue --auth
php artisan ui react --auth
php artisan migrate
  • Tester l’enregistrement d’un utilisateur grâce à l’uri register

 

  • Réaliser la vue /auth/compte.blade.php et l’uri compte
@extends('layouts.app')

@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
  • Réaliser l’uri deconnexion
Route::get('/deconnexion',function () {
   Auth::logout();
    return redirect('/');
});
  • Ajouter le bouton deconnexion à l’uri /
  • rediriger l’utilisteur à la racine du site en modifiant le controleur Login
//protected $redirectTo = RouteServiceProvider::HOME;
protected $redirectTo = '/';

 

 

Note

  • test si l’utilisateur est connecté
Auth::check();