首頁 > 後端開發 > php教程 > Laravel 授權後如何將使用者重新導向至其預期目的地?

Laravel 授權後如何將使用者重新導向至其預期目的地?

Patricia Arquette
發布: 2024-12-02 12:13:17
原創
766 人瀏覽過

How to Redirect Users to Their Intended Destination After Authorization in Laravel?

Laravel 授權後重定向回原始目的地

用戶授權後重定向到預期目的地是Web 應用程式中的常見要求。在 Laravel 中,要實現這一點需要了解授權的工作原理並利用適當的技術。

授權過程

當使用者嘗試存取受保護的路由時,Laravel 的身份驗證中間件,例如auth中間件,攔截請求。如果用戶未登錄,他們將被重定向到登錄頁面。

確定原始目的地

登入後,我們需要確定使用者的原始頁面正在嘗試在授權過程開始之前存取。 Laravel 為此提供了內建功能:

Laravel 5.3 及以上

從 Laravel 5.3 開始,引入了預期的輔助方法。在登入控制器中,成功驗證後:

return redirect()->intended('/');
登入後複製

這會將使用者重新導向到他們最初嘗試造訪的頁面。

Laravel 5 Up to 5.2

在Laravel 5 到5.2 中,您可以在重定向上使用預期的()方法重定向class:

return redirect()->intended('defaultpage');
登入後複製

如果未設定預期頁面,則會重新導向到指定的預設頁面,例如主頁。

Laravel 4 及更早版本

在 Laravel 5.3 之前,缺乏對此功能的官方支援。一種方法是在授權過程中將預期的URL 儲存在會話中,然後在成功登入後重定向到該URL:

// In the authorization filter
if (Auth::guest()) {
    Session::put('intended', Request::fullUrl());
    return Redirect::guest('login');
}

// In the login controller
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    $intended = Session::get('intended');
    Session::forget('intended');
    return Redirect::to($intended ?: 'defaultpage');
}
登入後複製

手動實作

如果您願意手動實現此功能,您可以將使用者重新導向到登入後可以選擇所需目的地的頁面。或者,您可以將預期頁面儲存在瞬態變數(例如 cookie)中授權成功後立即將使用者重新導向到它。

以上是Laravel 授權後如何將使用者重新導向至其預期目的地?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板