簡體   English   中英

Laravel登錄后將用戶重定向到原始目的地

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM