首页 >后端开发 >php教程 >Laravel 身份验证后如何将用户重定向回上一页?

Laravel 身份验证后如何将用户重定向回上一页?

Susan Sarandon
Susan Sarandon原创
2024-11-30 18:05:13450浏览

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

Laravel:登录后重定向到上一页

问题:

如何重定向用户在遇到 Laravel 身份验证之前返回到他们尝试访问的页面过滤器?

答案:

对于 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. 在 auth 中间件中,重定向到“登录”并将原始 URL 存储在session:
// 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');
}

对于 Laravel 3:

  1. 在auth过滤器中,将当前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