首頁 > 後端開發 > php教程 > Laravel 登入後如何將使用者重新導向回原來的目的地?

Laravel 登入後如何將使用者重新導向回原來的目的地?

Patricia Arquette
發布: 2024-12-04 19:41:10
原創
416 人瀏覽過

How Can I Redirect Users Back to Their Original Destination After Laravel Login?

Laravel 登入後重定向回原始目的地

Web 應用程式中經常需要此功能。 Laravel 為基本功能提供了優雅的解決方案,從而引發了這樣的問題:這是否是一個錯失的機會。

對於Laravel 5.3 及更高版本

正如Scott 指出的,一個原生的現在存在方法:

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

對於Laravel 5 最多5.2

身份驗證中間件:

// redirect to "/login" and store the URL in session
if (Auth::guest()) {
    return redirect()->guest('login');
}
登入後複製

登錄操作:

// redirect back to intended page or default if not available
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return redirect()->intended('defaultpage');
}
登入後複製

對於拉維爾4

雖然早期版本沒有官方支持,但你仍然可以實現:

Auth Filter:

// redirect to "/login" and store the URL in session
Route::filter('auth', function() {
    if (Auth::guest()) {
        return Redirect::guest('login');
    }
});
登入後複製

登入操作:

// redirect back to intended page or default if not available
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return Redirect::intended('defaultpage');
}
登入後複製

對於 Laravel 3

早期的方法涉及將重定向儲存在會話中:

Auth過濾器:

Route::filter('auth', function() {
    if (Auth::guest()) {
        Session::put('redirect', URL::full());
        return Redirect::to('/login');
    }
    if ($redirect = Session::get('redirect')) {
        Session::forget('redirect');
        return Redirect::to($redirect);
    }
});
登入後複製

控制器:

// login action
public function post_login()
{
    if (Auth::attempt($credentials)) {
        return Redirect::to('logged_in_homepage_here');
    }

    return Redirect::to('login')->with_input();
}
登入後複製

此方法允許任何元件在會話中設定重定向以供後續檢索。

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

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