Dành cho Laravel 5.3 trở lên
Kiểm tra câu trả lời của Scott dưới đây.
Đối với Laravel 5 lên tới 5,2
Chỉ cần đặt,
Trên phần mềm trung gian auth:
// redirect the user to "/login"
// and stores the url being accessed on session
if (Auth::guest()) {
return redirect()->guest('login');
}
return $next($request);
Về hành động đăng nhập:
// 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');
}
Dành cho Laravel 4 (câu trả lời cũ)
Tại thời điểm trả lời này, không có hỗ trợ chính thức từ chính khuôn khổ. Ngày nay bạn có thể sử dụngphương pháp được chỉ ra bởi bgdrl bên dướiphương pháp này: (Tôi đã thử cập nhật câu trả lời của anh ấy, nhưng có vẻ như anh ấy sẽ không chấp nhận)
Trên bộ lọc xác thực:
// redirect the user to "/login"
// and stores the url being accessed on session
Route::filter('auth', function() {
if (Auth::guest()) {
return Redirect::guest('login');
}
});
Về hành động đăng nhập:
// 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');
}
Dành cho Laravel 3 (câu trả lời thậm chí cũ hơn)
Bạn có thể thực hiện nó như thế này:
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();
}
Lưu trữ chuyển hướng trên Phiên có lợi ích duy trì nó ngay cả khi người dùng bỏ lỡ nhập thông tin đăng nhập của mình hoặc anh ta không có tài khoản và phải đăng ký.
Điều này cũng cho phép mọi thứ khác ngoài Auth đặt chuyển hướng trên phiên và nó sẽ hoạt động một cách kỳ diệu.