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

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

Barbara Streisand
发布: 2024-11-30 17:37:11
原创
431 人浏览过

How to Redirect Users to Their Original Destination After Laravel Login?

Laravel:登录后将用户重定向到原始目的地

在 Laravel 中,当用户尝试访问受保护的路由时,他们会被重定向到登录页面。登录后,用户应该被重定向回他们最初尝试访问的页面。

解决方案

适用于 Laravel 5.3 及以上

  • 在登录操作中使用预期方法将用户重定向回预期页面。示例:
// Login action
public function login(Request $request)
{
    if (Auth::attempt($request->all())) {
        return redirect()->intended('dashboard');
    }

    return redirect('login');
}
登录后复制

For Laravel 5 Up to 5.2

  • 修改 auth 中间件以在重定向到之前将请求的 URL 存储在会话中登录页面。
  • 在登录操作中,使用预期的方法重定向用户返回到预期页面,如果没有,则返回默认页面。示例:
// Auth middleware
public function handle($request, Closure $next)
{
    if (Auth::guest()) {
        Session::put('intended_url', request()->url());
        return redirect('login');
    }

    return $next($request);
}

// Login action
public function login(Request $request)
{
    if (Auth::attempt($request->all())) {
        return redirect()->intended('dashboard');
    }

    return redirect('login');
}
登录后复制

对于 Laravel 4

  • 在 auth 过滤器中使用 Redirect::guest 方法将用户重定向到登录名页面并将请求的 URL 存储在会话中。
  • 在登录操作中,使用Redirect::intended 方法将用户重定向回预期页面,如果没有,则返回默认页面。示例:
// Auth filter
Route::filter('auth', function($route, $request) {
    if (Auth::guest())
    {
        Session::put('intended_url', request()->url());
        return Redirect::guest('login');
    }
});

// Login action
public function login(Request $request)
{
    if (Auth::attempt($request->all())) {
        return Redirect::intended('dashboard');
    }

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

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

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