>백엔드 개발 >PHP 튜토리얼 >Laravel 인증 후 사용자를 이전 페이지로 다시 리디렉션하는 방법은 무엇입니까?

Laravel 인증 후 사용자를 이전 페이지로 다시 리디렉션하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-30 18:05:13518검색

How to Redirect Users Back to the Previous Page After Laravel Authentication?

Laravel: 로그인 후 이전 페이지로 리디렉션

질문:

어떻게 리디렉션할 수 있나요? 사용자가 Laravel 인증을 받기 전에 액세스하려고 했던 페이지로 돌아갑니다. filter?

답변:

Laravel 5.3 이상:

request()를 사용하여 원하는 페이지로 리디렉션합니다. >의도(), 예:

// Auth middleware
if (!Auth::check()) {
    return redirect()->intended('login');
}

// Login action
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return redirect()->intended('/');
}

Laravel 5 최대 5.2의 경우:

  1. 인증 미들웨어에서 "로그인"으로 리디렉션하고 원본 URL을 세션:
// Auth middleware
if (!Auth::check()) {
    return redirect()->guest('login');
}
  1. 로그인 작업에서 원하는 페이지 또는 기본 페이지로 리디렉션합니다.
// Login action
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return redirect()->intended('defaultpage');
}

Laravel 4의 경우 :

  1. 인증 필터에서 다음으로 리디렉션하세요. "로그인"하고 세션에 원래 URL을 저장합니다:
// Auth filter
Route::filter('auth', function() {
    if (!Auth::check()) {
        return Redirect::guest('login');
    }
});
  1. 로그인 작업에서 의도한 페이지 또는 기본 페이지로 리디렉션합니다:
// Login action
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return Redirect::intended('defaultpage');
}

라라벨의 경우 3:

  1. 인증 필터에서 현재 URL을 세션에 저장하고 로그인 페이지로 리디렉션합니다.
// Auth filter
Route::filter('auth', function() {
    if (!Auth::check()) {
        Session::put('redirect', URL::full());
        return Redirect::to('/login');
    }
});
  1. 로그인 작업, 원하는 페이지 또는 기본 페이지로 리디렉션:
// Login controller
public function get_login() {
    // ...
}

public function post_login() {
    // ...

    if (Auth::attempt($credentials)) {
        $redirect = Session::get('redirect');
        Session::forget('redirect');

        if ($redirect) {
            return Redirect::to($redirect);
        } else {
            return Redirect::to('defaultpage');
        }
    }

    // ...
}

위 내용은 Laravel 인증 후 사용자를 이전 페이지로 다시 리디렉션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.