ホームページ > バックエンド開発 > PHPチュートリアル > Laravel ログイン後にユーザーを元の宛先にリダイレクトするにはどうすればよいですか?

Laravel ログイン後にユーザーを元の宛先にリダイレクトするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-04 19:41:10
オリジナル
424 人が閲覧しました

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

以前のバージョンでは公式サポートはありませんでしたが、引き続き実装できます:

認証フィルター:

// 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート