2015-04-04 104 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); 

我希望這可以幫助別人!