Điều này có nghĩa là chúng ta có thể tìm thấy một const RouteServiceProvider có tên là "HOME", chúng ta có thể ghi đè const này và nó sẽ thay đổi điểm cuối chuyển hướng sau khi đăng nhập, nhưng đây không phải là điều chúng ta cần để chuyển hướng người dùng theo vai trò hoặc theo bất kỳ điều kiện nào khác
LoginController sử dụng một đặc điểm
use AuthenticatesUsers;
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Đặc điểm AuthenticatesUsers này có một đặc điểm khác "RedirectsUsers" đặc điểm RedirectsUsers này có một phương thức "redirectPath"
public function redirectPath[]
{
if [method_exists[$this, 'redirectTo']] {
return $this->redirectTo[];
}
return property_exists[$this, 'redirectTo'] ? $this->redirectTo : '/home';
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Vì vậy, điều đó có nghĩa là đặc điểm này xem xét liệu lớp có thuộc tính "redirectTo" hay không và nếu không, nó sẽ thực thi phương thức "redirectTo", vì vậy chúng ta có thể thêm phương thức "redirectTo" trong LoginController để thêm bất kỳ logic nào chúng ta cần
Ví dụ như
public function redirectTo[]
{
$for = [
'admin' => 'admin.panel',
'user' => 'foundations.splashscreen',
];
return $this->redirectTo = route[$for[auth[]->user[]->role]];
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Ở đây, bạn có thể thấy một mảng với các vai trò là khóa và tên tuyến đường là giá trị, tôi thực sự khuyên bạn nên sử dụng phương thức "route[]", bởi vì nếu bạn thay đổi điểm cuối, nó không ảnh hưởng đến phương thức này, vì giá trị mà chúng tôi đang giải quyết theo cách di động
Ghi chú
Nếu bạn cần sử dụng một số "dd[]" gỡ lỗi điểm cuối sẽ được chuyển hướng, bạn có thể chuyển đến đặc điểm "AuthenticatesUsers. php" được sử dụng bởi "LoginController" ở đây chúng ta có thể tìm thấy một phương thức "sendLoginResponse", sử dụng phương thức redirectPath[]
protected function sendLoginResponse[Request $request]
{
$request->session[]->regenerate[];
$this->clearLoginAttempts[$request];
if [$response = $this->authenticated[$request, $this->guard[]->user[]]] {
return $response;
}
// HERE YOU CAN ADD a dd[$this->redirectPath[]]
return $request->wantsJson[]
? new Response['', 204]
: redirect[]->intended[$this->redirectPath[]];
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Ghi chú
Nếu bạn muốn chuyển hướng người dùng đã xác thực trên các tuyến xác thực theo vai trò sang các đường dẫn khác nhau, chỉ cần chỉnh sửa phần mềm trung gian "Redirect IfAuthenticated" để chuyển hướng theo các vai trò khác nhau
Bạn muốn biết cách chuyển hướng người dùng sau khi đăng nhập vào ứng dụng Laravel của mình? . Theo mặc định, laravel sẽ chuyển hướng người dùng đến trang chủ như vậy. protected $redirectTo = '/home';
Để thay đổi hành vi mặc định đó, hãy thêm đoạn mã sau vào App/Http/Controllers/Auth/LoginController.php
. Thao tác này sẽ chuyển hướng người dùng [sau khi đăng nhập] đến nơi bạn muốn
// inside LoginController class
use AuthenticatesUsers;
// check if authenticated, then redirect to dashboard
protected function authenticated[] {
if [Auth::check[]] {
return redirect[]->route['dashboard'];
}
}
Chúng tôi chỉ đơn giản là sử dụng AuthenticatesUsers
đặc điểm bên trong LoginController
để chúng tôi có thể sử dụng một trong những phương thức của nó có tên là authenticated[]
. Nếu tò mò về đặc điểm này, bạn có thể tìm kiếm Người dùng xác thực trong trình chỉnh sửa của mình và xem thử. Trong cao siêu, bạn có thể sử dụng
public function redirectPath[]
{
if [method_exists[$this, 'redirectTo']] {
return $this->redirectTo[];
}
return property_exists[$this, 'redirectTo'] ? $this->redirectTo : '/home';
}
0 hoặc public function redirectPath[]
{
if [method_exists[$this, 'redirectTo']] {
return $this->redirectTo[];
}
return property_exists[$this, 'redirectTo'] ? $this->redirectTo : '/home';
}
1. Theo mặc định, phương thức này được để trống trong đặc điểm AuthenticatesUsers. Bạn có thể áp dụng bất kỳ logic nào bạn muốn áp dụng bên trong phương thức này để chuyển hướng người dùng.
Chuyển hướng người dùng dựa trên Vai trò trong Laravel
Nếu người dùng của bạn dựa trên vai trò, thì bạn có thể chuyển hướng họ [sau khi đăng nhập] đến một trang cụ thể dựa trên vai trò của họ, chẳng hạn như Quản trị viên, Tác giả và Người đăng ký. Hãy xem mẫu mã dưới đây