您好,登錄后才能下訂單哦!
在 Laravel 中,實現用戶認證通常涉及到以下幾個步驟:
下面是詳細的實現過程:
首先,使用 make:middleware
Artisan 命令創建一個名為 Authenticate
的中間件:
php artisan make:middleware Authenticate
這將在 app/Http/Middleware
目錄下生成一個 Authenticate.php
文件。
接下來,在 routes/web.php
文件中,將需要認證的路由放在 auth
中間件組中:
Route::middleware(['auth'])->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index']);
// 其他需要認證的路由
});
在需要認證的控制器中,使用 auth
中間件:
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request;
class DashboardController extends Controller
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return view('dashboard');
}
}
在 app/Http/Controllers/Auth
目錄下創建一個名為 LoginController.php
的控制器:
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/dashboard';
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function username()
{
return 'email';
}
protected function guard()
{
return Auth::guard();
}
}
在 resources/views/auth
目錄下創建 login.blade.php
和 register.blade.php
視圖文件。
在 routes/web.php
文件中添加登錄和注冊路由:
Route::get('/login', [LoginController::class, 'showLoginForm']);
Route::post('/login', [LoginController::class, 'login']);
Route::get('/register', [RegisterController::class, 'showRegistrationForm']);
Route::post('/register', [RegisterController::class, 'register']);
Route::post('/logout', [LoginController::class, 'logout']);
在 app/Http/Controllers/Auth
目錄下創建一個名為 RegisterController.php
的控制器:
use App\Models\User;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;
class RegisterController extends Controller
{
use RegistersUsers;
protected $redirectTo = '/login';
public function __construct()
{
$this->middleware('guest');
}
protected function model(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
}
在 resources/views/auth
目錄下創建 register.blade.php
視圖文件。
現在,你已經實現了基本的用戶認證功能。用戶可以通過注冊和登錄來訪問受保護的路由。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。