Penyelesaian tamat masa log masuk Laravel: 1. Konfigurasi sesi kuki, anda boleh menetapkan pembolehubah "SESSION_LIFETIME" dalam fail ".env" 2. Lanjutkan kitaran hayat sesi, dengan menyegarkan masa tamat sesi setiap kali pengguna meminta, Atau lanjutkan kitaran hayat sesi melalui perisian tengah tersuai 3. Urus masa aktiviti pengguna, gunakan JavaScript untuk menghantar permintaan secara kerap untuk mensimulasikan aktiviti pengguna atau memerlukan pengguna mengesahkan semula identiti mereka apabila mereka melakukan operasi sensitif.
Persekitaran pengendalian artikel ini: Sistem Windows 10, versi laravel 9, komputer dell g3.
Laravel ialah rangka kerja pembangunan PHP yang popular untuk membina aplikasi web berskala. Dalam Laravel, log masuk pengguna adalah fungsi yang sangat biasa, tetapi kadangkala anda menghadapi masalah masa log masuk yang tidak sah. Apabila pengguna tidak aktif untuk satu tempoh masa, mereka akan dilog keluar secara automatik. Ini adalah atas sebab keselamatan dan pengalaman pengguna, namun, kadangkala log keluar automatik ini bukan tingkah laku yang diingini. Artikel ini akan membantu anda menyelesaikan masalah ketidaksahihan masa log masuk Laravel.
1. Konfigurasi sesi kuki
Dalam Laravel, sesi dilaksanakan melalui kuki. Dalam fail konfigurasi Laravel, anda boleh menemui item konfigurasi berkaitan sesi. Secara lalai, pilihan `seumur hidup` ditetapkan kepada 120 minit, yang bermaksud pengguna akan dilog keluar secara automatik jika tiada aktiviti selama 120 minit.
Jika anda ingin menukar kitaran hayat sesi, anda boleh menetapkan pembolehubah `SESSION_LIFETIME` dalam fail `.env`. Contohnya, jika anda ingin menetapkan jangka hayat sesi kepada 30 minit, anda boleh menambah `SESSION_LIFETIME=30` pada fail `.env` dan mengkonfigurasi semula cache konfigurasi aplikasi.
2. Lanjutkan kitaran hayat sesi
Dalam sesetengah kes, anda mungkin mahu melanjutkan kitaran hayat sesi supaya pengguna kekal log masuk walaupun tiada aktiviti untuk tempoh masa. Anda boleh mencapai ini dalam dua cara.
Cara pertama adalah dengan menyegarkan masa tamat sesi pada setiap permintaan pengguna. Anda boleh menambah coretan kod berikut dalam pengawal asas apl anda:
public function __construct() { $this->middleware(function ($request, $next) { $response = $next($request); session()->put('last_activity', time()); return $response; }); }
Kod di atas akan menyimpan masa semasa dalam kekunci `last_activity` dalam sesi pada setiap permintaan. Dengan cara ini, masa tamat sesi akan ditetapkan semula kepada masa permintaan semasa, dengan itu memanjangkan kitaran hayat sesi.
Cara kedua ialah melanjutkan kitaran hayat sesi melalui perisian tengah tersuai. Anda boleh mencipta perisian tengah baharu dalam direktori `app/Http/Middleware`, seperti `ExtendSessionLifetime`. Tambahkan coretan kod berikut dalam kaedah `handle` middleware:
public function handle($request, Closure $next) { if (auth()->check()) { session()->put('last_activity', time()); } return $next($request); } 然后,在`app/Http/Kernel.php`文件的`$middleware`数组中注册你的中间件: protected $middleware = [ // ... \App\Http\Middleware\ExtendSessionLifetime::class, ];
Dengan cara ini, middleware akan dilaksanakan pada setiap permintaan, dan jika pengguna sudah log masuk, masa tamat sesi akan ditetapkan semula kepada masa permintaan semasa.
3. Urus masa aktiviti pengguna
Selain memanjangkan kitaran hayat sesi, anda juga boleh menguruskan masa aktiviti pengguna melalui kaedah lain untuk mengelakkan log keluar automatik yang tidak perlu.
Salah satu cara ialah menggunakan JavaScript untuk menghantar permintaan secara berkala bagi mensimulasikan aktiviti pengguna. Anda boleh mencipta fungsi JavaScript yang akan menghantar permintaan ke URL tertentu pada pelayan pada selang masa tertentu untuk mensimulasikan aktiviti pengguna. Pelayan akan menerima permintaan dan memuat semula masa tamat sesi pengguna.
Pendekatan lain ialah menghendaki pengguna mengesahkan semula apabila mereka melakukan tindakan sensitif. Sebagai contoh, anda boleh meminta pengguna memasukkan semula kata laluan mereka untuk mengesahkan identiti mereka apabila mereka melakukan tindakan seperti membayar pesanan atau menukar kata laluan mereka. Dengan cara ini, walaupun sesi telah tamat tempoh, pengguna masih perlu mengesahkan semula identiti mereka apabila melakukan operasi sensitif.
Ringkasan
Tamat masa log masuk Laravel adalah masalah biasa, tetapi kami boleh menyelesaikan masalah ini dengan memanjangkan kitaran hayat sesi dan mengurus masa aktiviti pengguna. Pertama, kita perlu memahami konfigurasi sesi kuki, dan kemudian kita boleh menyelesaikan masalah tamat tempoh masa log masuk dengan menetapkan kitaran hayat sesi. Kedua, kami boleh mengawal lagi tempoh sesi pengguna sah dengan menyegarkan masa tamat sesi dan mengurus masa aktiviti pengguna. Melalui kaedah ini, kami dapat memberikan pengalaman dan keselamatan pengguna yang lebih baik.
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika masa log masuk laravel tamat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!