Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengubah Hala Pengguna Kembali ke Destinasi Asal Mereka Selepas Log Masuk Laravel?

Bagaimanakah Saya Boleh Mengubah Hala Pengguna Kembali ke Destinasi Asal Mereka Selepas Log Masuk Laravel?

Patricia Arquette
Patricia Arquetteasal
2024-12-04 19:41:10426semak imbas

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

Mengubah Hala Kembali ke Destinasi Asal Selepas Log Masuk Laravel

Fungsi ini sering diperlukan dalam aplikasi web. Laravel menyediakan penyelesaian yang elegan untuk ciri-ciri penting, yang membawa kepada persoalan sama ada ini peluang yang terlepas.

Untuk Laravel 5.3 dan Ke Atas

Seperti yang Scott nyatakan, orang asli kaedah kini wujud:

return redirect()->intended('defaultpage');

Untuk Laravel 5 Sehingga 5.2

Auth Middleware:

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

Tindakan Log Masuk:

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

Untuk Laravel 4

Walaupun tiada sokongan rasmi dalam versi terdahulu, anda masih boleh melaksanakannya:

Penapis Pengesahan:

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

Tindakan Log Masuk:

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

Untuk Laravel 3

Pendekatan awal melibatkan penyimpanan pengalihan dalam sesi:

Penapis Pengesahan:

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);
    }
});

Pengawal:

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

    return Redirect::to('login')->with_input();
}

Pendekatan ini membenarkan mana-mana komponen untuk menetapkan ubah hala dalam sesi untuk mendapatkan semula seterusnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Hala Pengguna Kembali ke Destinasi Asal Mereka Selepas Log Masuk 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