手动设置url.intended和错误的浏览器历史记录

时间:2019-03-13 16:41:53

标签: laravel laravel-5 laravel-5.7

基于一个雄辩的事件,我在会话中将url.intended设置为一个特殊页面。

$this->request->session()->put('url.intended', '/my-special-page');

因此,当用户在特定表(通过表单)上创建一行并且未登录时,它会将其重定向到登录名(在中间件之后),并在成功登录后将其重定向到/my-special-page。 / p>

所有这些都有效,但是当我创建行,登录并重定向到/my-special-page并回击时,向我展示了用户可以正常登录的页面。

为什么会发生这种情况?如果用户回击,该如何返回到他们先前所在的页面?

发生了什么事

form submit -> login -> special-page -> user hits back -> normal page for logged in users

应该发生什么:

form submit -> login -> special-page -> user hits back -> form page

1 个答案:

答案 0 :(得分:0)

您可以通过编辑RedirectIfAuthenticated中间件来实现所需的目标:

public function handle($request, Closure $next, $guard = null)
{
    if (Auth::guard($guard)->check()) {
        return redirect('/home');
    }

    return $next($request);
}

只需编辑重定向行,使其变为return redirect('/my-special-page');