2017-02-19 2 views
0

Ich habe diese Admin-Middleware:Admin weitergeleitet/home nach Zurück-Button klicken

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'); 
    } 
} 

Und im logincontroller, wenn der Benutzer admin ist, werden sie auf /admin. umgeleitet und wenn nicht umgeleitet /home.

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

Jetzt, wenn sich der Administrator anmeldet, werden sie zu /admin umgeleitet, aber beim Zurückklicken des Browsers befinden sie sich in /home. Wie kann ich die Admins nicht zu /home umleiten. /home ist unter Auth Middleware-Gruppe.

Antwort

1

Der Grund dafür ist, dass dieser Benutzer jetzt authentifiziert ist.

Laravel kommt mit einer Middleware namens RedirectIfAuthenticated, die überprüft, ob der Benutzer authentifiziert ist und wenn ja, leiten Sie sie woanders um.

Sie müssten diese Middleware bearbeiten so etwas wie sein: das hilft

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); 
} 

Hoffnung!

0

Das ist, weil Sie authenticated sind. Wenn Sie die Zurück-Taste drücken, bedeutet das von /admin, dass Sie zu /login zurückkehren möchten, aber bevor Sie die Ansicht aufrufen, wird überprüft, wo der Benutzer angemeldet ist oder nicht. Da Sie nicht abgemeldet haben und angemeldet sind, werden Sie Pfad /home ..

In Auth Ordner auf Standard umgeleitet gibt es eine LoginController wo Sie diese Zeile sehen

protected $redirectTo = '/home'; 

Wenn Sie möchten, Um Logik hinzuzufügen, können Sie sie hier ändern. Dies ist der Standardpfad.

Verwandte Themen