Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengubah Hala Pengguna Kembali ke Halaman Sebelumnya Selepas Pengesahan Laravel?

Bagaimana untuk Mengubah Hala Pengguna Kembali ke Halaman Sebelumnya Selepas Pengesahan Laravel?

Susan Sarandon
Susan Sarandonasal
2024-11-30 18:05:13518semak imbas

How to Redirect Users Back to the Previous Page After Laravel Authentication?

Laravel: Mengubah hala ke Halaman Sebelumnya Selepas Log Masuk

Soalan:

Bagaimana saya boleh mengubah hala pengguna kembali ke halaman yang mereka cuba akses sebelum menemui pengesahan Laravel penapis?

Jawapan:

Untuk Laravel 5.3 dan ke atas:

Ubah hala ke halaman yang dimaksudkan menggunakan request()- >intended(), cth.:

// Auth middleware
if (!Auth::check()) {
    return redirect()->intended('login');
}

// Login action
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return redirect()->intended('/');
}

Untuk Laravel 5 sehingga 5.2:

  1. Dalam perisian tengah auth, ubah hala ke "log masuk" dan simpan URL asal dalam sesi:
// Auth middleware
if (!Auth::check()) {
    return redirect()->guest('login');
}
  1. Dalam tindakan log masuk, ubah hala ke halaman yang dimaksudkan atau lalai halaman:
// Login action
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return redirect()->intended('defaultpage');
}

Untuk Laravel 4:

  1. Dalam penapis pengesahan, ubah hala ke "log masuk" dan simpan URL asal dalam sesi:
// Auth filter
Route::filter('auth', function() {
    if (!Auth::check()) {
        return Redirect::guest('login');
    }
});
  1. Dalam tindakan log masuk, ubah hala ke halaman yang dimaksudkan atau lalai halaman:
// Login action
if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return Redirect::intended('defaultpage');
}

Untuk Laravel 3:

  1. Dalam penapis pengesahan, simpan URL semasa dalam sesi dan ubah hala ke log masuk halaman:
// Auth filter
Route::filter('auth', function() {
    if (!Auth::check()) {
        Session::put('redirect', URL::full());
        return Redirect::to('/login');
    }
});
  1. Dalam tindakan log masuk, ubah hala ke halaman yang dimaksudkan atau lalai halaman:
// Login controller
public function get_login() {
    // ...
}

public function post_login() {
    // ...

    if (Auth::attempt($credentials)) {
        $redirect = Session::get('redirect');
        Session::forget('redirect');

        if ($redirect) {
            return Redirect::to($redirect);
        } else {
            return Redirect::to('defaultpage');
        }
    }

    // ...
}

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Hala Pengguna Kembali ke Halaman Sebelumnya Selepas Pengesahan Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn