Rumah > rangka kerja php > Laravel > penggantian kuki laravel

penggantian kuki laravel

王林
Lepaskan: 2023-05-20 16:06:39
asal
587 orang telah melayarinya

Laravel ialah rangka kerja PHP yang digunakan secara meluas, dan komponen kukinya digunakan untuk menjejak tingkah laku pengguna dalam pembangunan web. Walau bagaimanapun, disebabkan kebimbangan privasi pengguna, banyak penyemak imbas telah mula menyekat penggunaan kuki pihak ketiga. Untuk melindungi privasi pengguna, Laravel telah melancarkan beberapa alternatif kuki Artikel ini akan memperkenalkan dua kaedah yang lebih biasa.

Pertama, mari kita lihat cara menggunakan komponen Sesi Laravel sendiri untuk menggantikan kuki. Secara lalai, komponen Sesi Laravel menggunakan kuki untuk menyimpan ID sesi semasa. Walau bagaimanapun, anda boleh menukar jenis pemacu Sesi dengan mengubah suai pilihan pemacu dalam fail konfigurasi session.php. Secara lalai, nilai pilihan pemacu ialah "fail", yang bermaksud bahawa Sesi akan menyimpan data dalam fail. Jika anda menukar nilai pilihan pemacu kepada "pangkalan data", maka Sesi akan menyimpan data dalam jadual pangkalan data. Dengan menggunakan komponen Sesi dan bukannya kuki, anda boleh mengelakkan masalah penyemak imbas memadam atau menolak kuki pihak ketiga secara rawak.

Kedua, Laravel juga menyediakan TokenGuard untuk menggantikan kuki. TokenGuard ialah sebahagian daripada rangka kerja pengesahan Laravel, yang membenarkan pengguna menyimpan token kebenaran dalam URL dan bukannya kuki. Untuk menggunakan TokenGuard, anda perlu memanggil kaedah Auth::viaRequest() dalam AppServiceProvider dan lulus fungsi panggil balik untuk memadankan token kebenaran. Dalam setiap kaedah pengawal yang memerlukan pengesahan, anda perlu membaca token kebenaran daripada URL dan memanggil kaedah Auth::loginUsingId() untuk mengesahkan pengguna.

Seterusnya, saya akan membentangkan kepada anda contoh kod lengkap yang menunjukkan cara menggunakan TokenGuard untuk menggantikan kuki. Mula-mula, kita perlu mengubah suai kaedah Auth::viaRequest() dalam AppServiceProvider:

public function boot()
{
    $this->registerPolicies();

    Auth::viaRequest('token', function ($request) {
        return User::where('api_token', $request->token)->first();
    });
}
Salin selepas log masuk

Dalam fungsi panggil balik ini, kita membaca parameter $token daripada objek $request dan menggunakannya untuk pengesahan pengguna. Jika token kebenaran memenuhi keperluan, fungsi ini akan mengembalikan contoh Pengguna yang sepadan, jika tidak ia akan mengembalikan nol.

Seterusnya, dalam kaedah pengawal di mana kita perlu mengesahkan identiti pengguna, tambahkan parameter $request pada pengisytiharan kaedah:

public function update(Request $request, $id)
{
    $user = Auth::guard('api')->user();

    if ($user && $user->id === $id) {
        // ...
    }
}
Salin selepas log masuk

Kemudian, kita boleh lulus token kebenaran dalam URL Give Kaedah kemas kini yang tenang, contohnya: /users/1?token=your-token. Akhir sekali, kami boleh melengkapkan pengesahan pengguna dengan memanggil kaedah Auth::loginUsingId() untuk memastikan bahawa pengguna mempunyai kebenaran untuk mengemas kini maklumat pengguna yang sepadan.

Kaedah menggunakan TokenGuard untuk menggantikan kuki adalah sangat fleksibel dan mempunyai pelbagai kebolehgunaan. Selain TokenGuard, Laravel juga menyokong penggunaan protokol pengesahan standard seperti OAuth2 dan OpenID Connect, yang boleh menyediakan alternatif yang lebih selamat dan fleksibel.

Ringkasnya, penggunaan Sesi dan TokenGuard yang munasabah, alternatif yang disediakan oleh Laravel, dapat menyelesaikan masalah kuki yang dipadam dan ditolak secara rawak, di samping meningkatkan perlindungan privasi pengguna. Sudah tentu, setiap alternatif mempunyai kelebihan dan kekurangannya sendiri dan perlu dipilih dan digunakan mengikut senario tertentu.

Atas ialah kandungan terperinci penggantian kuki laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan