Untuk Laravel 5.3 ke atas
Periksa jawaban Scott di bawah ini.
Untuk Laravel 5 hingga 5.2
Sederhananya,
Pada middleware auth:
// redirect the user to "/login"
// and stores the url being accessed on session
if (Auth::guest()) {
return redirect()->guest('login');
}
return $next($request);
Saat aksi masuk:
// 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');
}
Untuk Laravel 4 (jawaban lama)
Pada saat jawaban ini tidak ada dukungan resmi dari kerangka itu sendiri. Saat ini Anda dapat menggunakannyametode yang ditunjukkan oleh bgdrl di bawah inimetode ini: (Saya sudah mencoba memperbarui jawabannya, tetapi sepertinya dia tidak akan menerima)
Pada filter auth:
// redirect the user to "/login"
// and stores the url being accessed on session
Route::filter('auth', function() {
if (Auth::guest()) {
return Redirect::guest('login');
}
});
Saat aksi masuk:
// 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');
}
Untuk Laravel 3 (jawaban yang lebih lama)
Anda bisa menerapkannya seperti ini:
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();
}
Menyimpan pengalihan pada Sesi memiliki manfaat bertahan meskipun pengguna tidak mengetik kredensial atau dia tidak memiliki akun dan harus mendaftar.
Ini juga memungkinkan hal lain selain Auth untuk mengatur pengalihan pada sesi dan itu akan bekerja secara ajaib.