Tôi muốn chuyển hướng người dùng của mình đến tuyến đường khác, dựa trên vai trò của họ. Tôi có hai khu vực được bảo vệ trong ứng dụng của tôi, "quản trị" và "trang tổng quan". Tôi muốn kiểm tra xem người dùng có được xác thực hay không, sau đó chuyển hướng đến dự định, nhưng nếu người dùng có trình chỉnh sửa vai trò, nó sẽ được chuyển hướng đến trang tổng quan, nếu không, người quản trị vai trò sẽ được chuyển hướng đến khu vực quản trị viên.Chuyển hướng Laravel 5 dành cho tuyến đường khác nhau dựa trên vai trò
Tôi đang sử dụng lớp AuthenticatesAndRegistersUsers trong thông tin đăng nhập của mình. Tôi có điều này trên bộ điều khiển tùy chỉnh của tôi:
/**
* The default redirecTo path.
*
*/
protected $redirectTo = '/dashboard';
Vì vậy, khi người dùng được xác thực nó sẽ được chuyển đến bảng điều khiển, nhưng tôi muốn kiểm tra xem địa chỉ dự định là trên tuyến đường nhóm admin và nếu người dùng có vai trò quản trị nó sẽ được chuyển hướng đến khu vực quản trị.
Tôi đang sử dụng middleware này để chuyển hướng để đăng nhập:
public function handle($request, Closure $next)
{
if ($this->auth->guest())
{
if ($request->ajax())
{
return response('Unauthorized.', 401);
}
else
{
return redirect()->guest('auth/login');
}
}
return $next($request);
}
Điều này sẽ hiệu quả, nhưng nếu tôi muốn chuyển hướng đến đường dẫn đầy đủ thì sao? ví dụ: người dùng cố gắng truy cập "admin/settings/general", được chuyển hướng đến thông tin đăng nhập, anh ấy đăng nhập và sau đó được chuyển hướng đến/admin, chứ không phải đường dẫn đầy đủ. – Tropicalista
Theo mặc định, Laravel sẽ cố gắng chuyển hướng đến URL dự định trước tiên. Nếu không có, nó sẽ rơi trở lại phương pháp này. –
Tôi nên đặt url chuyển hướng trên phần mềm trung gian? – Tropicalista