2015-04-04 71 views
0

现在登录或注销后,我被转发到主页。登录和注销后如何重定向 - laravel 5

this article

已阅读, 我可以验证控制器定义重定向路径

protected $redirectPath = '/'; 

我也可以改变这一行中间件RedirectIfAuthenticated.php:

return new RedirectResponse(url('/')); 

但我的目标是

  • 要么登录AJAX

  • 或者在登录或注销后,重定向回到我按下按钮的页面。

这两个答案都非常赞赏。

Thx。

回答

1

重定向到以前的页面,您可以使用back()像这样:

return redirect()->back(); 

你可以阅读更多的Laravel Docs

+0

没有。 return redirect() - > back();就像Redirect :: back()给出一个重定向循环一样。 – Peter 2015-04-04 11:51:26

0

如何使用这样的东西?

if(Session::get('redirect') == null) { 
Session::flash('redirect', 'ok'); 
return redirect()->back(); 
} 
0

对于任何人谁需要重定向用户回哪里点击了受保护的页面的按钮重定向到登录页面。这是我的简单方法。

您的导航,菜单或任何在第一,你的HREF值将是这样的:

<a href="{{auth::check() ? url('protected-page') : url('signin').'?redirect_to=post-request'}}"> Some Page </a> 

什么这只是做的是,如果用户没有登录,其用途lgin页作为url,它简单地切断了重定向的需要并添加了当前页面,这些页面将作为登录url的get参数在登录后重定向到的页面。与使用会话检索http_referer不同,如果用户由于验证错误而被重定向回登录名,那么这将会出错,这将会延续到您的url。登录URL的

例子,可以http://localhost:2008/signin?redirect_to=protected-page

然后只需登录之后,你会只检查是否得到PARAM redirected_to可用然后重定向用户返回该页面,或者如果它不是默认提供的页面作为获得参数,可能是您的家庭或仪表板,下面的例子可能会有所帮助。

$data = $request->all(); 
$referer = $data['redirect_to'] ? url($data['redirect_to']) : url('/'); 
if($allowAccess) return redirect($referer); 

我希望这可以帮助别人!