Quay lại

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

Authenticating controller methods trong Laravel

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)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday