是否可以在auth之后将用户重定向到倒数第二页?
为什么?
我在叠加层中打开登录。当验证抛出错误时,重定向为:
return Redirect::intended('?openOverlay=login')->with('error-login-noconfirm','1');
当用户输入正确的logindata时,Redirect返回(),这意味着,他将被重定向到右侧页面但是打开Overlay。
当用户成功登录时,我需要摆脱覆盖,意味着,我可能需要将路由传递给登录方法,或类似的东西。
你知道吗?谢谢!编辑:
登录代码:
if ($validator->fails()) {
return Redirect::intended('?openOverlay=login')
->withErrors($validator)
->withInput(Input::except('password'));
} else {
$user = User::where('email', Input::get('email'))->first();
if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password'), 'confirmed' => 1))) {
return Redirect::intended();
} else {
return Redirect::intended('?openOverlay=login')->with('error-login-noconfirm','1');
}
}
打算也没有工作。它将我重定向到我的/页面而不是" last"页。
答案 0 :(得分:3)
你不必使用back()。登录过程以这种方式工作:
1)A'仍未登录'用户尝试浏览您的网站并点击路线:
Route::get('dashboard', 'DashboardController@dashboard');
2)但是被重定向到登录表单:
return Redirect::to('?openOverlay=login');
3)成功登录后,您必须使用Redirect::intended()
将用户重定向到他/她首次尝试访问的网址:
if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
// Login succeeded, redirect it to the intended url
return Redirect::intended('home');
}
else
{
/// Login failed, redirect back to login, so your user can try to login again
return Redirect::back()->with('error-login-noconfirm','1');
}
您的用户将被重定向到'信息中心'和家庭'是一个后备路线,以防万一会话发生,并且没有更多的预定('仪表板')网址。
如果目标网址不是第一个访问的网址,您可以在会话中更改它:
$path = Session::put('url.intended', $the_actual_url_intended);