[英]Laravel Redirect user to original destination after login
在我的Laravel應用中,我有一個私人頁面,只能由Auth用戶訪問。 我也在使用社交登錄,因此,當用戶不登錄而進入私有頁面時,Laravel會將用戶發送到登錄頁面,成功登錄后,該用戶將被發送回原始目的地(私有頁面)。 僅當用戶通過Laravel內置Auth系統登錄時,而當用戶通過“社交登錄”方法登錄時,該用戶將被定向到主頁。
登錄后,這是我的社交登錄處理程序:
public function handleProviderCallback($provider)
{
$user = Socialite::driver($provider)->user();
$authUser = $this->findOrCreateUser($user, $provider);
Auth::login($authUser, true);
return redirect('/home');
}
如果會話中存在該用戶,我該如何將其發送到原始目的地,否則將其發送回首頁。
文檔非常簡短地提到了它,但是Laravel有一個內置方法:
return redirect()->intended('/home')
每當Auth中間件由於用戶未登錄而重定向用戶時,其原始URL將被存儲。 intended
檢查該URL是否被存儲和使用,或作為參數提供的后備。
采用,
return redirect()->intended('/home')
重定向器上的預期方法會將用戶重定向到他們嘗試訪問的URL,然后再被身份驗證中間件攔截。 在預期的目標不可用的情況下,可以為此方法提供后備URI。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.