laravel 返回登陆前浏览的页面实现(登录重构后的登录跳转)

场景:

    用户浏览网站并登录后,喜欢返回到登陆前的网页

解决:

      其实各个框架都可以这样实现, 通过Session

     原理:  通过session记录当前账户浏览的uri , 在自定义的页面跳转过去就ok了

     1. 在公用模板中做下面的操作

{{-- 登录返回之前浏览的页面,这里的逻辑自定义就好 --}}
@if (!\Auth::check() && strpos(\Request::getRequestUri(), 'discussions')!==false) 
    {!! \Session::put('redirect_url', \Request::getRequestUri()) !!}
@endif

      2. 在定义的登录处做下面的操作

public function sign(UserLoginRequest $request)
{
    $attempt = [
        'email' => $request->get('email'),
        'password' => $request->get('password'),
        'is_confirmed' => 1
    ];
    if (\Auth::attempt($attempt)) {
        // 跳转到登陆之前的页面
        if (\Session::has('redirect_url')) {
            $redirect_url = \Session::get('redirect_url');
            \Session::forget('redirect_url');
            return redirect($redirect_url);
        }
        return redirect('/');
    }

    \Session::flash('user_login_failed', '密码不正确或者邮箱没有验证');
    return redirect('/login')->withInput();
}

你可能感兴趣的:(laravel)