Laravel Breeze hoặc Jetstream – Xác thực người dùng

Tạo bởi Hoàng Vũ, chỉnh sửa cuối lúc 27 tháng 5, 2025

Laravel cung cấp sẵn các gói scaffolding để triển khai hệ thống xác thực người dùng (Authentication) nhanh chóng. Trong bài học này, học viên sẽ học cách tích hợp Laravel Breeze hoặc Laravel Jetstream, bao gồm chức năng đăng ký, đăng nhập, đăng xuất và thiết lập giao diện cơ bản để bắt đầu xây dựng một hệ thống có người dùng.

1 So sánh Breeze và Jetstream

Đặc điểm Breeze Jetstream
Giao diện Đơn giản, Blade Tailwind + Livewire/Inertia
Tính năng Basic Auth Auth, Team, 2FA, API, Profile
Mục tiêu Học tập, tùy chỉnh dễ dàng Ứng dụng thực tế phức tạp

Trong bài này, ta sử dụng Laravel Breeze để đơn giản hóa việc học và dễ mở rộng sau này.

2 Cài đặt Laravel Breeze

composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run dev
php artisan migrate

Sau khi cài đặt:

  • Laravel tạo sẵn các route /login, /register, /dashboard, ...
  • Tạo sẵn view, controller, middleware, session.

3 Cấu trúc thư mục sau khi cài đặt

  • routes/web.php: chứa các route xác thực.
  • resources/views/auth: chứa các view liên quan đến đăng ký, đăng nhập.
  • app/Http/Controllers/Auth: chứa các controller xử lý logic xác thực.
  • app/Models/User.php: model người dùng.

4 Đăng ký & đăng nhập

Giao diện /register

<form method="POST" action="{{ route('register') }}">
    @csrf
    <input name="name" type="text">
    <input name="email" type="email">
    <input name="password" type="password">
    <input name="password_confirmation" type="password">
    <button>Đăng ký</button>
</form>

Giao diện /login

<form method="POST" action="{{ route('login') }}">
    @csrf
    <input name="email" type="email">
    <input name="password" type="password">
    <button>Đăng nhập</button>
</form>

Khi đăng nhập thành công, Laravel tự động điều hướng đến /dashboard.

5 Đăng xuất và bảo vệ route

Đăng xuất:

<form method="POST" action="{{ route('logout') }}">
    @csrf
    <button>Đăng xuất</button>
</form>

Bảo vệ route:

Route::middleware(['auth'])->group(function () {
    Route::get('/dashboard', function () {
        return view('dashboard');
    });
});

Laravel tự động chuyển hướng người dùng chưa đăng nhập về trang /login.

6 Xác thực bằng middleware auth

  • Laravel có middleware auth để kiểm tra nếu người dùng đã đăng nhập.
  • Nếu chưa, sẽ redirect về login.

Ví dụ:

Route::get('/profile', function () {
    // Chỉ người dùng đã đăng nhập mới xem được
})->middleware('auth');

Ví dụ cụ thể

  • Cài đặt Laravel Breeze và chạy php artisan migrate
  • Truy cập các trang: /register, /login, /dashboard
  • Thử đăng nhập bằng tài khoản đã đăng ký
  • Tạo route /profile và bảo vệ bằng auth middleware
  • Thêm nút đăng xuất trên dashboard.blade.php

Bài tập thực hành

  1. Cài Laravel Breeze, tạo project xác thực người dùng hoàn chỉnh.
  2. Tạo trang /profile hiển thị thông tin người dùng hiện tại (name, email).
  3. Thêm logic logout và redirect về trang login sau khi đăng xuất.

Kết luận

  • Laravel Breeze là cách đơn giản và nhanh chóng để triển khai xác thực người dùng.
  • Học viên đã nắm được cách đăng ký, đăng nhập, đăng xuất và bảo vệ route bằng middleware.
  • Bài học này là nền tảng cho việc triển khai hệ thống phân quyền, quản trị, và API có xác thực.
Website Logo

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.

Bình luận

Website Logo

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.

Liên hệ công việc qua email dưới đây.

lhvuctu@gmail.com

Chúng Tôi Trên

Bạn đang muốn học về lập trình website?

Bạn cần nâng cao kiến thức chuyên nghiệp hơn để nâng cao cơ hội nghề nghiệp? Liên hệ