首页 > 后端开发 > php教程 > Laravel 登录后如何将用户重定向回原来的目的地?

Laravel 登录后如何将用户重定向回原来的目的地?

Patricia Arquette
发布: 2024-12-04 19:41:10
原创
416 人浏览过

How Can I Redirect Users Back to Their Original Destination After Laravel Login?

Laravel 登录后重定向回原始目的地

Web 应用程序中经常需要此功能。 Laravel 为基本功能提供了优雅的解决方案,从而引发了这样的问题:这是否是一个错失的机会。

对于 Laravel 5.3 及更高版本

正如 Scott 指出的,一个原生的现在存在方法:

return redirect()->intended('defaultpage');
登录后复制

对于 Laravel 5 最多5.2

身份验证中间件:

// redirect to "/login" and store the URL in session
if (Auth::guest()) {
    return redirect()->guest('login');
}
登录后复制

登录操作:

// redirect back to intended page or default if not available
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return redirect()->intended('defaultpage');
}
登录后复制

对于拉维尔4

虽然早期版本没有官方支持,但你仍然可以实现:

Auth Filter:

// redirect to "/login" and store the URL in session
Route::filter('auth', function() {
    if (Auth::guest()) {
        return Redirect::guest('login');
    }
});
登录后复制

登录操作:

// redirect back to intended page or default if not available
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return Redirect::intended('defaultpage');
}
登录后复制

对于 Laravel 3

早期的方法涉及将重定向存储在会话中:

Auth过滤器:

Route::filter('auth', function() {
    if (Auth::guest()) {
        Session::put('redirect', URL::full());
        return Redirect::to('/login');
    }
    if ($redirect = Session::get('redirect')) {
        Session::forget('redirect');
        return Redirect::to($redirect);
    }
});
登录后复制

控制器:

// login action
public function post_login()
{
    if (Auth::attempt($credentials)) {
        return Redirect::to('logged_in_homepage_here');
    }

    return Redirect::to('login')->with_input();
}
登录后复制

此方法允许任何组件在会话中设置重定向以供后续检索。

以上是Laravel 登录后如何将用户重定向回原来的目的地?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板