Authenticating controller methods trong Laravel Chuyên mục PHP và Laravel 2023-07-28 215 Lượt xem 33 Lượt thích 0 Bình luận

Về cơ bản, có hai cách sử dụng auth middleware để xác thực các routes trong Laravel.
Bạn sẽ…
- Attach (đính kèm) auth middleware vào route như này.
Route::get('profile', function () {
// Only authenticated users may enter...
})->middleware('auth');
Hoặc
- Nếu bạn đang sử dụng controllers, bạn có thể gọi middleware method từ constructor của controller’s thay vì đính kèm nó trực tiếp vào routes như trên.
public function __construct()
{
$this->middleware('auth');
}
Ở đây, theo cách tiếp cận trên, auth middleware sẽ được áp dụng cho từng phương thức của controller. Điều gì sẽ xảy ra nếu bạn chỉ muốn áp dụng middleware trên một số methods nhất định? Laravel cũng có cung cấp một cách cho việc này.
Sử dụng except và only options
Bằng cách cung cấp các except và only options cho middleware method làm đối số thứ hai, có thể chọn phương thức của controller nào sẽ bị ràng buộc bởi authentication.
Đây là cách bạn có thể sử dụng only options:
public function __construct()
{
$this->middleware('auth', ['only' => ['delete', 'edit']]);
}
Như bạn có thể thấy ở đây, bạn có thể cung cấp một mảng chứa tất cả các phương thức mà bạn muốn authentication (xác thực). Phương thức còn lại sẽ hoạt động mà không cần authentication.
Tương tự, đây là cách bạn có thể sử dụng except options:
public function __construct()
{
$this->middleware('auth', ['except' => ['index', 'show']]);
}
Tại đây, bạn có thể cung cấp một mảng chứa tất cả các phương thức mà bạn không muốn xác thực. Phương thức còn lại sẽ được xác thực như bình thường.
Bình luận (0)