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
Je vais maintenant ajouter un menu à gauche de mon espace membre et afficher des liens qui pointerons sur mes futures pages d’administration.
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