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

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

Barbara Streisand
Barbara Streisand原創
2024-11-30 17:37:11349瀏覽

How to Redirect Users to Their Original Destination After Laravel Login?

Laravel:登入後將使用者重新導向到原始目的地

在Laravel 中,當使用者嘗試存取受保護的路由時,他們會被重新導向到登入頁面。登入後,用戶應該被重定向回他們最初嘗試訪問的頁面。

解決方案

適用於Laravel 5.3 及以上

  • 在登入作業中使用預期方法將使用者登入操作重定向回預期頁面。範例:
// Login action
public function login(Request $request)
{
    if (Auth::attempt($request->all())) {
        return redirect()->intended('dashboard');
    }

    return redirect('login');
}

For Laravel 5 Up to 5.2

  • 修改auth 中間件以在重定向到之前將請求的URL 儲存在會話中登入頁面。
  • 在登入作業中,使用預期的方法重新導向使用者返回預期頁面,如果沒有,則傳回預設頁面。範例:
// Auth middleware
public function handle($request, Closure $next)
{
    if (Auth::guest()) {
        Session::put('intended_url', request()->url());
        return redirect('login');
    }

    return $next($request);
}

// Login action
public function login(Request $request)
{
    if (Auth::attempt($request->all())) {
        return redirect()->intended('dashboard');
    }

    return redirect('login');
}

對於Laravel 4

  • 在auth 過濾器中使用Redirect::guest 方法將使用者重新導向到登入名稱頁面並將請求的URL 儲存在會話中。
  • 在登入操作中,使用Redirect::intended 方法將使用者重新導向回預期頁面,如果沒有,則傳回預設頁面。例:
// Auth filter
Route::filter('auth', function($route, $request) {
    if (Auth::guest())
    {
        Session::put('intended_url', request()->url());
        return Redirect::guest('login');
    }
});

// Login action
public function login(Request $request)
{
    if (Auth::attempt($request->all())) {
        return Redirect::intended('dashboard');
    }

    return Redirect::to('login');
}

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn