Si vous êtes comme moi, de nombreuses applications que vous construisez dans Laravel ont un cadre de type Saas similaire : inscription de l’utilisateur, connexion de l’utilisateur, réinitialisation du mot de passe, page de vente publique, tableau de bord connecté, route de déconnexion et un style Bootstrap de base pour quand vous venez de commencer.
Laravel avait un échafaudage pour cela prêt à l’emploi. Il a disparu récemment, à mon grand chagrin, mais il est maintenant de retour en tant que commande Artisan : make:auth
.
Qu’apporte-t-il ? Creusons.
Qu’est ce qui a changé?
Nous avons une mise en page (resources/views/layouts/app.blade.php
) qui est au cœur de cet échafaudage, puis une série de vues qui le prolongent :
- bienvenue.blade.php – la page d’accueil du public
- home.blade.php – le tableau de bord pour les utilisateurs connectés
- auth/login.blade.php – la page de connexion
- auth/register.blade.php – la page d’inscription/d’inscription
- auth/passwords/email.blade.php – la page de confirmation de réinitialisation du mot de passe
- auth/passwords/reset.blade.php – la page d’invite de réinitialisation du mot de passe
- auth/emails/password.blade.php – l’email de réinitialisation du mot de passe
Notre page publique est toujours acheminée via routes.php
:
Route::get("https://mattstauffer.com/", function () {
return view('welcome');
});
Et nous avons maintenant un HomeController
qui achemine notre tableau de bord :
class HomeController extends Controller
{
/**
* Show the application dashboard.
*
* @return Response
*/
public function index()
{
return view('home');
}
}
Ceci est bien sûr acheminé dans routes.php
dans le web
groupe. Et remarquez qu’il y a quelque chose d’autre de nouveau ici : le Route::auth()
méthode:
Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('/home', 'HomeController@index');
});
Route :: auth()
Le auth()
est un raccourci pour définir les routes suivantes :
// Authentication Routes...
$this->get('login', 'Auth\AuthController@showLoginForm');
$this->post('login', 'Auth\AuthController@login');
$this->get('logout', 'Auth\AuthController@logout');
// Registration Routes...
$this->get('register', 'Auth\AuthController@showRegistrationForm');
$this->post('register', 'Auth\AuthController@register');
// Password Reset Routes...
$this->get('password/reset/{token?}', 'Auth\PasswordController@showResetForm');
$this->post('password/email', 'Auth\PasswordController@sendResetLinkEmail');
$this->post('password/reset', 'Auth\PasswordController@reset');
L’interface
Voyons maintenant ce que nous obtenons dans le navigateur :
Comme vous pouvez le voir, nous avons Bootstrap CSS, une mise en page de base de l’application Bootstrap, et utile pour nos actions d’authentification de base.
App.blade.php
Alors, à quoi ressemble cette mise en page principale ?
Nous obtenons FontAwesome, la police Lato, Bootstrap CSS, une mise en page réactive hamburger sur mobile de base, jQuery, Bootstrap JS et des espaces réservés qui sont commentés pour les fichiers CSS et JS de sortie par défaut si vous choisissez d’utiliser Elixir.
Nous avons également une navigation supérieure qui nous relie à la maison, et relie les invités pour se connecter ou s’inscrire, et relie les utilisateurs authentifiés pour se déconnecter.
Conclusion
C’est ça! Ce n’est pas quelque chose de complexe, mais c’est 30 à 60 minutes de frappe que vous venez d’économiser sur chaque application qui en a besoin.