[Laravel] Authentication
Bài viết tổng hợp 1 số ý chính trong Authentication Laravel
1. Introduction
Laravel thực thi authentication cực kì đơn giản. Trên thực tế, có rất nhiều thứ được cấu hình ngoài phạm vi bài viết này.
Về phần cốt lõi, Laravel authentication được tạo là bởi “guards
“ và “providers
“
Guard
- Guards xác định cách người dùng được xác thực cho mỗi request. Ví dụ, Laravel “session” guard sẽ duy trì trạng thái bằng cách sử dụng bộ lưu trữ session và cookie
- Guards:
HOW AUTHENTICATE
, sử dụng gì để xác thực (session, jwt hay 1 cái nào đó tự định nghĩa =)))
Guards define how users are authenticated for each request
Provider
- Provider: cách lấy dữ liệu người dùng như thế nào từ bộ lưu trữ. Laravel hỗ trợ truy xuất dữ liệu người dùng qua Eloquent và Database query builder.
- Tuy nhiên bạn có thể tự do xác định các provider cần thiếu cho ứng dụng của mình
=> Provider: HOW USERS ARE RETRIEVED (Provider: cách thao tác dữ liệu với người dùng
Providers define how users are retrieved from your persistent storage
2. Custom lại mọi thứ
Custom lại đường dẫn chuyển hướng, email, guard xem trên trang chủ nhé. Một vài cái hay ho
Password Confirmation
Khi bạn muốn user của bạn xác nhận lại mật khẩu trước khi thực hiện một số hành động yêu cầu sự bảo mật hãy sử dụng middleware này1
2
3Route::get('/settings/security', function () {
// Users must confirm their password before continuing...
})->middleware(['auth', 'password.confirm']);
Chi tiết: https://laravel.com/docs/6.x/authentication#password-confirmation
Login Throttling
Nếu bạn đang sử dụng class LoginController
của Laravel, trait Illuminate\Foundation\Auth\ThrottlesLogins
đã được bao gồm trong controller của bạn.
Mặc định user sẽ không thể login trong vòng 1 phút nếu họ đã đăng nhập lỗi 1 vài lần trước. Sự điều tiết này là duy nhât với mỗi username/email của người dùng và địa chỉ IP
3. Thêm 1 custom Guards hoặc 1 custom User Providers
Tổng kết:
- Cốt lỗi của Laravel Authentication là Guard và Provider
- Guard: xác thực bằng cách nào
- Provider: Cung cấp các cách truy vấn dữ liệu User
- Có thể custom lại mọi thứ, thêm 1 guard mới và Provider mới
[Laravel] Authentication