[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ày

1
2
3
Route::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

https://code.tutsplus.com/vi/tutorials/how-to-create-a-custom-authentication-guard-in-laravel--cms-29667

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
Author

Ming

Posted on

2019-11-23

Updated on

2021-04-10

Licensed under

Comments