📅  最后修改于: 2023-12-03 14:43:44.647000             🧑  作者: Mango
Laravel Auth is a built-in authentication system in the Laravel PHP framework. It provides an easy and convenient way to implement user authentication and manage user sessions in a Laravel application.
To use Laravel Auth, you need to have Laravel installed on your system. If Laravel is not already installed, you can follow the Laravel documentation to install it.
Once Laravel is installed, you can use Composer to install Laravel Auth by running the following command in your terminal:
composer require laravel/ui
After installation, you need to run the following command to generate the authentication scaffolding:
php artisan ui bootstrap --auth
This will generate the necessary views, routes, and controllers for user authentication.
By default, Laravel Auth provides a user registration form that includes fields for name, email, and password. To enable user registration, you need to include the registration routes in your routes/web.php
file:
use App\Http\Controllers\Auth\RegisterController;
Route::get('/register', [RegisterController::class, 'showRegistrationForm'])->name('register');
Route::post('/register', [RegisterController::class, 'register']);
Laravel Auth also provides a user login form. To enable user login, you need to include the login routes in your routes/web.php
file:
use App\Http\Controllers\Auth\LoginController;
Route::get('/login', [LoginController::class, 'showLoginForm'])->name('login');
Route::post('/login', [LoginController::class, 'login']);
If a user forgets their password, Laravel Auth provides a password reset functionality. To enable password reset, you need to include the password reset routes in your routes/web.php
file:
use App\Http\Controllers\Auth\ForgotPasswordController;
use App\Http\Controllers\Auth\ResetPasswordController;
Route::get('/password/reset', [ForgotPasswordController::class, 'showLinkRequestForm'])->name('password.request');
Route::post('/password/email', [ForgotPasswordController::class, 'sendResetLinkEmail'])->name('password.email');
Route::get('/password/reset/{token}', [ResetPasswordController::class, 'showResetForm'])->name('password.reset');
Route::post('/password/reset', [ResetPasswordController::class, 'reset'])->name('password.update');
Laravel Auth provides middleware for protecting routes that require authentication. To protect a route, you can use the auth
middleware:
Route::get('/dashboard', function () {
// This route requires authentication
})->middleware('auth');
Laravel Auth allows you to define user roles and permissions. You can use the built-in Authorize
middleware to check if a user has a specific role or permission:
Route::get('/admin', function () {
// This route requires the user to have the 'admin' role
})->middleware('role:admin');
Route::get('/edit-post', function () {
// This route requires the user to have the 'edit_post' permission
})->middleware('can:edit_post');
Laravel Auth is a powerful authentication system that simplifies user authentication and session management in Laravel applications. It provides a robust set of features and can be easily integrated into any Laravel project. By following the installation and usage guidelines provided above, you can quickly implement user authentication in your application.