2017-02-19 11 views
0

У меня есть этот админ промежуточного программного обеспечения:Администратора перенаправлены/домов после задней кнопки мыши

public function handle($request, Closure $next, $guard = null) 
{ 
    if (Auth::check()) { 
     if ($request->user()->is_admin == 1) { 
      return $next($request); 
     } 

     return redirect('/login'); 
    } else { 
     return redirect('/login'); 
    } 
} 

И в LoginController, если пользователь администратор, они перенаправляются /admin. и если не перенаправлены /home.

protected function authenticated() 
{ 
    if (auth()->user()->is_admin == 1) { 
     return redirect('/admin'); 
    } else { 
     return redirect('/home'); 
    } 
} 

Теперь, когда администратор входит в систему, они перенаправляются на /admin, но при нажатии кнопки браузера они находятся в /home. Как я не мог перенаправить администраторов на /home. /home не поддерживается.

ответ

1

Причина этого в том, что этот пользователь теперь аутентифицирован.

Laravel поставляется с промежуточным программным обеспечением под названием RedirectIfAuthenticated, который проверяет, аутентифицирован ли пользователь и если он перенаправляет их в другое место.

Вы должны были бы изменить, что промежуточное программное обеспечение, чтобы быть что-то вроде:

public function handle($request, Closure $next, $guard = null) 
{ 
    if (Auth::guard($guard)->check()) { 
     return $request->user($guard)->is_admin 
      ? redirect('/admin') 
      : redirect('/home'); 
    } 

    return $next($request); 
} 

Надеется, что это помогает!

0

Это потому, что вы - authenticated. Когда вы нажимаете кнопку «Назад», это означает, что от /admin вы хотите вернуться к /login, но перед вызовом вида он проверяется, где пользователь вошел в систему или нет. Так как вы не вошли, и вошли в систему, вы будете перенаправлены по умолчанию путь /home ..

В Auth папке есть LoginController, где вы можете увидеть эту строку

protected $redirectTo = '/home'; 

Если вы хотите чтобы добавить логику, вы можете изменить ее здесь. Это путь по умолчанию.