Laravel登录后保存用户页面

时间:2018-02-01 19:18:32

标签: php laravel session

我有问题。当访客在页面上,并想要登录。登录后,Laravel在主页面上重定向。我怎么办,当客人登录保存他所在的页面并重定向到那里?

中间件身份验证:

{{1}}

我使用默认的auth laravel。但登录后无法恢复上一页。

1 个答案:

答案 0 :(得分:0)

由于最初的问题是针对社交网站,后来修改为默认身份验证,我将在此处解决。

<强> 1。 Laravel Socialite

Laravel Socialite意图重定向不按人们期望的方式工作,因为第一次重定向来自控制器进行身份验证。

这是您需要做的事情。

redirectToProvider方法中,添加以下内容:

if(!session()->has('url.intended')) {
    session()->put('url.intended', url()->previous());
}

然后,在您的handleProviderCallback方法中,添加以下内容:

if(session()->has('url.intended')) {
    $redirectUrl = session('url.intended');
} else {
    $redirectUrl = 'your fallback url here';
}
session()->forget('url.intended');
return redirect($redirectUrl);

<强> 2。默认身份验证如果您有单独的登录页面

if (Auth::attempt(['email' => $email, 'password' => $password])) {
    // Authentication passed...
    return redirect()->intended('dashboard');
}

第3。默认身份验证如果您没有单独的登录页面

这意味着您可能在每个页面上都有一个模式窗口用于登录,因此,登录本身没有单独的页面,每个页面都可以执行登录请求。

$redirectUrl = session('url.intended', url()->previous());
session()->forget('url.intended');
return redirect($redirectUrl);