Tôi đang sử dụng Laravel Khung 5.4.10, và tôi đang sử dụng xác thực thông thường màLaravel 5.4 chuyển hướng đến url tùy chỉnh sau khi đăng nhập
php artisan make:auth
cung cấp. Tôi muốn bảo vệ toàn bộ ứng dụng và chuyển hướng người dùng đến/chủ đề sau khi đăng nhập.
Tôi có 4 bộ điều khiển: ForgotPasswordController.php, LoginController.php, RegisterController.php và ResetPasswordController.php. Tôi đã chỉnh sửa dòng này thành ba lần cuối:
protected $redirectTo = '/themes';
Đây là dòng đầu tiên trong tuyến đường của tôi/web.php:
Auth::routes();
Tôi đã thêm chức năng này trong Controller.php tôi:
public function __construct()
{
$this->middleware('auth');
}
tôi đã chỉnh sửa ứng dụng/Http/Middleware/RedirectIfAuthenticated.php, do đó xử lý chức năng trông như thế này:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/themes');
}
return $next($request);
}
Tất cả đều ổn, ngoại trừ khi tôi nhấp vào nút Đăng nhập, tôi được chuyển hướng đến "/", không phải "/ chủ đề". Nếu tôi không yêu cầu xác thực trong bộ điều khiển (không có hàm __contruct trong tệp Controller.php), tôi sẽ được chuyển hướng OK khi đăng nhập. Tôi đang làm gì sai?
Tuyệt vời! Điều duy nhất là isAdmin() đã cho tôi một BadMethodCallException, vì vậy tôi bỏ qua toàn bộ phần IF và nó hoạt động hoàn hảo! – ivanacorovic
Tôi vui vì nó đã giúp, ứng dụng của tôi sử dụng isAdmin() để kiểm tra người dùng là quản trị viên trước khi chuyển hướng, không thể thay đổi theo mã của bạn chỉ muốn đưa ra gợi ý cho bạn.Cảm ơn – Babagana