Für Laravel 5.3 und höher
Überprüfen Sie Scotts Antwort unten.
Für Laravel 5 bis 5.2
Einfach gesagt,
Auf Auth Middleware:
// redirect the user to "/login"
// and stores the url being accessed on session
if (Auth::guest()) {
return redirect()->guest('login');
}
return $next($request);
Bei der Anmeldeaktion:
// redirect the user back to the intended page
// or defaultpage if there isn't one
if (Auth::attempt(['email' => $email, 'password' => $password])) {
return redirect()->intended('defaultpage');
}
Für Laravel 4 (alte Antwort)
Zum Zeitpunkt dieser Antwort gab es keine offizielle Unterstützung durch das Framework selbst. Heutzutage können Sie verwendendie Methode, auf die bgdrl unten hinweistdiese Methode: (Ich habe versucht, seine Antwort zu aktualisieren, aber es scheint, dass er nicht akzeptiert)
Beim Authentifizierungsfilter:
// redirect the user to "/login"
// and stores the url being accessed on session
Route::filter('auth', function() {
if (Auth::guest()) {
return Redirect::guest('login');
}
});
Bei der Anmeldeaktion:
// redirect the user back to the intended page
// or defaultpage if there isn't one
if (Auth::attempt(['email' => $email, 'password' => $password])) {
return Redirect::intended('defaultpage');
}
Für Laravel 3 (noch ältere Antwort)
Sie könnten es so implementieren:
Route::filter('auth', function() {
// If there's no user authenticated session
if (Auth::guest()) {
// Stores current url on session and redirect to login page
Session::put('redirect', URL::full());
return Redirect::to('/login');
}
if ($redirect = Session::get('redirect')) {
Session::forget('redirect');
return Redirect::to($redirect);
}
});
// on controller
public function get_login()
{
$this->layout->nest('content', 'auth.login');
}
public function post_login()
{
$credentials = [
'username' => Input::get('email'),
'password' => Input::get('password')
];
if (Auth::attempt($credentials)) {
return Redirect::to('logged_in_homepage_here');
}
return Redirect::to('login')->with_input();
}
Das Speichern der Umleitung in einer Sitzung hat den Vorteil, dass sie auch dann beibehalten wird, wenn der Benutzer seine Anmeldeinformationen falsch eingegeben hat oder kein Konto hat und sich anmelden muss.
Dies ermöglicht auch, dass alles andere als Auth eine Umleitung für die Sitzung festlegt, und es funktioniert auf magische Weise.