Errors log:
Sau khi cài Breeze file route bị ghi đè (mất dữ liệu)
-> sửa lại thêm middleware (để Breeze xác thực mới cho vào link)
Ví dụ:
use App\Http\Controllers\PostController;
use App\Http\Controllers\CategoryController;
Route::middleware('auth')->group(function () {
Route::resource('posts', PostController::class);
Route::resource('categories', CategoryController::class);
});
và giữ lại:
require __DIR__.'/auth.php';
ở cuối file.
Đến thời điểm này, chúng ta đã có thể xây dựng một Blog CMS với các chức năng như:
Quản lý Post
Category
Tag
Relationship
Form
Validation
Upload File
Tuy nhiên, ứng dụng vẫn còn thiếu một thành phần rất quan trọng:
Hệ thống đăng nhập và quản lý người dùng.
Laravel cung cấp một giải pháp chính thức để xây dựng Authentication hiện đại mang tên Laravel Breeze.
Laravel Breeze là gì?
Laravel Breeze là bộ khung Authentication chính thức do đội ngũ Laravel phát triển.
Chỉ với vài lệnh cài đặt, Breeze sẽ tạo sẵn:
Đăng nhập (Login)
Đăng ký (Register)
Quên mật khẩu
Đặt lại mật khẩu
Xác minh Email (tùy chọn)
Giao diện đăng nhập
Middleware xác thực
Controller
Route
View
Người lập trình không cần tự xây dựng từ đầu.
Vì sao nên dùng Breeze?
Nếu tự viết Authentication, bạn sẽ phải xử lý:
Mã hóa mật khẩu.
Kiểm tra đăng nhập.
Lưu Session.
Đăng xuất.
CSRF.
Remember Me.
Bảo mật mật khẩu.
Laravel Breeze đã xử lý sẵn toàn bộ các công việc này theo chuẩn của Laravel.
Yêu cầu
Trước khi cài Breeze, dự án cần:
Laravel đã được cài đặt.
Database đã cấu hình.
Chạy Migration thành công.
Ví dụ:
php artisan migrate
Cài đặt Breeze
Cài package:
composer require laravel/breeze --dev
Sau khi hoàn tất:
php artisan breeze:install
Laravel sẽ hỏi một số tùy chọn.
Ví dụ:
Which starter kit?
● Blade
○ React
○ Vue
○ API
Trong khóa học này chúng ta chọn:
Blade
để tập trung vào Laravel trước khi học các công nghệ Front-end nâng cao.
Cài giao diện
Sau khi Breeze tạo mã nguồn:
npm install
Tiếp theo:
npm run build
Trong quá trình phát triển, có thể dùng:
npm run dev
để tự động biên dịch tài nguyên khi có thay đổi.
Migration
Breeze sử dụng bảng users có sẵn.
Chạy:
php artisan migrate
Nếu dự án của bạn đã chạy Migration từ các bài trước thì Laravel sẽ chỉ tạo những bảng còn thiếu.
Khởi động dự án
php artisan serve
Mở trình duyệt:
http://127.0.0.1:8000
Trang chủ sẽ xuất hiện thêm:
Login
Register
ở góc trên bên phải.
Đăng ký tài khoản
Nhấn:
Register
Điền:
Name
Email
Password
Confirm Password
Sau khi gửi Form, Laravel sẽ:
Validation.
Mã hóa mật khẩu.
Lưu User vào Database.
Đăng nhập tự động.
Mật khẩu được mã hóa
Trong Database:
password
$2y$12$...
Laravel sử dụng thuật toán băm để lưu mật khẩu, không lưu mật khẩu gốc.
Điều này giúp tăng tính an toàn nếu cơ sở dữ liệu bị lộ.
Đăng nhập
Sau khi có tài khoản:
Login
Nhập:
Email
Password
Nếu đúng:
Laravel tạo Session và xác định người dùng đã đăng nhập.
auth()
Thay vì:
'user_id' => 1
Từ bây giờ:
'user_id' => auth()->id()
Hoặc:
auth()->user()->id
Đây là cách làm chuẩn trong các ứng dụng Laravel.
Ví dụ tạo Post
Post::create([
'title' =>
$request->title,
'content' =>
$request->content,
'image' =>
$image ?? null,
'category_id' =>
$request->category_id,
'user_id' =>
auth()->id(),
]);
Mỗi bài viết sẽ tự động gắn với người đang đăng nhập.
Hiển thị tên người dùng
Blade:
{{ auth()->user()->name }}
Email:
{{ auth()->user()->email }}
Điều này rất hữu ích cho Dashboard hoặc thanh điều hướng.
Đăng xuất
Breeze đã tạo sẵn chức năng:
Logout
Sau khi đăng xuất:
Session bị xóa.
Người dùng phải đăng nhập lại để tiếp tục.
Những gì Breeze tạo
Sau khi cài đặt, dự án sẽ có thêm:
app/
Http/
Controllers/
Auth/
resources/
views/
auth/
routes/
auth.php
Ngoài ra còn có:
Middleware.
Validation.
Email Verification (nếu bật).
Các Route xác thực.
Ưu điểm của Breeze
Chính thức từ Laravel.
Dễ cài đặt.
Dễ tùy biến.
Mã nguồn rõ ràng.
Phù hợp cho các dự án nhỏ và vừa.
Là nền tảng để học Laravel Authentication.
Tổng kết
Trong bài này chúng ta đã học:
Laravel Breeze là gì.
Cài đặt Breeze.
Blade Starter Kit.
Build giao diện.
Đăng ký tài khoản.
Đăng nhập.
auth()->id().auth()->user().Đăng xuất.
Từ bài này trở đi, mọi thao tác tạo Post, cập nhật Profile hay quản lý dữ liệu đều sẽ gắn với người dùng đang đăng nhập, thay vì sử dụng giá trị user_id cố định như ở các bài trước.
Bài tập
Cài đặt Laravel Breeze.
Tạo một tài khoản mới.
Đăng nhập vào hệ thống.
Thay
user_id = 1bằngauth()->id().Hiển thị tên người dùng trên giao diện.
Tạo một Post và kiểm tra
user_idtrong cơ sở dữ liệu.Đăng xuất khỏi hệ thống.
Bài tiếp theo
Ở Bài 22, chúng ta sẽ tìm hiểu chi tiết cách Login hoạt động trong Laravel, bao gồm Session, Guard, Middleware và quy trình xác thực người dùng sau khi đăng nhập.
x1




Không có nhận xét nào:
Đăng nhận xét