Middleware là nghĩa vụ phải hoặc trả lại một phản ứng hoặc vượt qua các yêu cầu xuống các đường ống dẫn middlewares là độc lập với nhau.
Bạn sẽ cần phải triển khai phần mềm trung gian riêng biệt cho phép 2 vai trò hoặc phần mềm trung gian duy nhất nhận vai trò được phép làm tham số
Tùy chọn 1: chỉ cần tạo phần mềm trung gian là phiên bản kết hợp của Auth1 và Auth2 để kiểm tra 2 loại người dùng. Đây là tùy chọn đơn giản nhất, mặc dù không thực sự linh hoạt.
Lựa chọn 2: kể từ phiên bản 5.1 middlewares có thể mất các thông số - xem thêm chi tiết ở đây: https://laravel.com/docs/5.1/middleware#middleware-parameters. Bạn có thể triển khai một phần mềm trung gian duy nhất sẽ lấy danh sách vai trò người dùng để kiểm tra và chỉ xác định các vai trò được phép trong tệp tuyến đường của bạn. Các mã sau đây nên làm như lừa:
// define allowed roles in your routes.php
Route::group(['namespace' => 'Common', 'middleware' => 'checkUserRoles:role1,role2', function() {
//routes that should be allowed for users with role1 OR role2 go here
});
// PHP < 5.6
// create a parametrized middleware that takes allowed roles as parameters
public function handle($request, Closure $next) {
// will contain ['role1', 'role2']
$allowedRoles = array_slice(func_get_args(), 2);
// do whatever role check logic you need
}
// PHP >= 5.6
// create a parametrized middleware that takes allowed roles as parameters
public function handle($request, Closure $next, ...$roles) {
// $roles will contain ['role1', 'role2']
// do whatever role check logic you need
}
Nguồn
2016-09-06 10:08:07
phù hợp nhất cho phép (cửa và chính sách) so với middlewares –