สำหรับ Laravel 5.3 ขึ้นไป
ตรวจสอบคำตอบของ Scottด้านล่าง
สำหรับ Laravel 5 สูงถึง 5.2
พูดง่าย ๆ
บนมิดเดิลแวร์รับรองความถูกต้อง:
// redirect the user to "/login"
// and stores the url being accessed on session
if (Auth::guest()) {
return redirect()->guest('login');
}
return $next($request);
ในการดำเนินการเข้าสู่ระบบ:
// 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');
}
สำหรับ Laravel 4 (คำตอบเก่า)
ในช่วงเวลาของคำตอบนี้ไม่มีการสนับสนุนอย่างเป็นทางการจากกรอบการทำงาน ทุกวันนี้คุณสามารถใช้วิธีการชี้โดย bgdrl ด้านล่างวิธีนี้: (ฉันได้ลองอัปเดตคำตอบของเขาแล้ว แต่ดูเหมือนว่าเขาจะไม่ยอมรับ)
ในตัวกรองรับรองความถูกต้อง:
// redirect the user to "/login"
// and stores the url being accessed on session
Route::filter('auth', function() {
if (Auth::guest()) {
return Redirect::guest('login');
}
});
ในการดำเนินการเข้าสู่ระบบ:
// 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');
}
สำหรับ Laravel 3 (คำตอบที่เก่ากว่า)
คุณสามารถใช้มันได้เช่นนี้
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();
}
การจัดเก็บการเปลี่ยนเส้นทางในเซสชันมีประโยชน์ในการคงไว้แม้ว่าผู้ใช้จะพลาดการพิมพ์ข้อมูลประจำตัวของเขาหรือเขาไม่มีบัญชีและต้องลงทะเบียน
นอกจากนี้ยังช่วยให้สิ่งอื่นนอกเหนือจาก Auth ตั้งค่าการเปลี่ยนเส้นทางในเซสชันและจะทำงานได้อย่างน่าอัศจรรย์