Sélectionner une page

Nous allons maintenant mettre en place le système d’authentification de Laravel et utiliser le template blade pour afficher les pages plus élégamment. Pour activer l’authentification, il suffit d’exécuter la ligne suivant en mode console.

php artisan make:auth

Elle aura pour effet d’ajouter ces 2 lignes dans votre fichier routes/web.php et les champs login et register sur la home.

Auth::routes();
Route::get('/home', 'HomeController@index');/

Vous pouvez donc maintenant créer un compte et vous connecter.

Bloquer l’accès aux personnes non connectées

Comme vous le verrez plus tard, vous avez plusieurs solutions pour bloquer l’accès à certaines pages aux personnes qui ne se sont pas connectées et les rediriger vers la page de connexion. Je vous donne ici 3 possibilités avant de mettre à disposition du code qui utilise ces fonctions. La première solution se met en place dans les routes et la seconde dans le controllers. 2 solutions de mise en place dans le routes\web.php

//Ajouter ->middleware('auth'); à la fin de la ligne
Route::get('/backend/categories', 'Backend\CategoriesController@index')->middleware('auth');

//... autre manière ... en si signalant avec middleware
Route::any('backend/categories/new/', 
[
 'middleware' => 'auth',
 'uses'=>'Backend\CategoriesController@newCat',
]);

Mise en place dans le controller

 public function __construct()
 {
    $this->middleware('auth');//limite l'accès aux personne connectées
 }

Personnaliser le template Blade – L’espace membre

Espace membre de base

Je vais maintenant ajouter un menu à gauche de mon espace membre et afficher des liens qui pointerons sur mes futures pages d’administration.

Routage et principe d’affichage pour le tamplate Blade

Parmi les modification que j’ai effectuée sur le fichier resources/ views/ layouts/ app.blade.php, j’ai personnalisé une zone si l’utilisateur est connecté ou non qui affichera mon menu personnalisé. J’ai également créer une zone qui affichera les différents messages d’erreur ou d’information.

@if (Auth::guest())
   @yield('content')
@else
@endif
//...
//...
//...
 
 @if (!empty($success_msg))// Un utilisant une session bootsrap
{{ $success_msg }}
 @endif 
 @if (!empty($info_msg))// Un utilisant une session bootsrap
{{ $info_msg }
 @endif 
 @if (!empty($error_msg))// Un utilisant une session bootstrap
{{ $error_msg }}
 @endif 
 @if (count($errors) > 0)//Afficher les message d'erreur levé par laravel
         @foreach ($errors->all() as $error)  
{{ $error }}
         @endforeach
 @endif