SETUP LOGIN LOCALHOST:8089 AGAR TIDAK EXPIRED TERUS =================================================== Masalah yang biasanya terjadi ----------------------------- 1. Session Laravel masih memakai database, padahal MySQL sedang recovery / tidak stabil. 2. Cookie session bentrok karena localhost dipakai di banyak port: - 8000 - 8087 - 8089 3. APP_URL tidak sesuai dengan port yang sedang dipakai. Setting .env yang dipakai untuk localhost:8089 ---------------------------------------------- APP_URL=http://localhost:8089 SESSION_DRIVER=file SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null SESSION_COOKIE=ahsp_session_8089 SESSION_SECURE_COOKIE=false SESSION_SAME_SITE=lax CACHE_STORE=file Penjelasan singkat ------------------ 1. SESSION_DRIVER=file Session disimpan ke file Laravel, bukan ke database. Ini aman untuk lokal jika database sedang recovery atau write dibatasi. 2. SESSION_COOKIE=ahsp_session_8089 Nama cookie dibedakan khusus untuk port 8089 supaya tidak bentrok dengan aplikasi localhost lain. 3. CACHE_STORE=file Cache tidak lagi menulis ke database. Ini penting kalau database sedang innodb_force_recovery > 0. 4. APP_URL=http://localhost:8089 Supaya URL aplikasi sesuai dengan port yang sedang dibuka. Langkah penerapan ----------------- 1. Edit file .env 2. Pastikan isinya sesuai setting di atas 3. Jalankan: php artisan config:clear 4. Jika perlu, jalankan juga: php artisan route:clear php artisan view:clear 5. Tutup browser / tab localhost:8089 6. Hapus cookie browser untuk localhost atau buka mode Incognito / Private 7. Buka lagi: http://localhost:8089/login Jika masih expired ------------------ Cek kemungkinan berikut: 1. Server yang melayani port 8089 belum restart - restart php artisan serve / web server 2. Masih ada config lama yang terbaca - jalankan: php artisan config:clear 3. Browser masih menyimpan cookie lama - hapus cookie localhost - atau test pakai incognito 4. Database recovery mode masih aktif - gejala di log: innodb_force_recovery > 0 - kalau ini aktif, jangan pakai: SESSION_DRIVER=database CACHE_STORE=database Setting yang TIDAK disarankan saat database recovery ---------------------------------------------------- SESSION_DRIVER=database CACHE_STORE=database Karena Laravel akan mencoba: - baca/tulis sessions - hapus cache lama - garbage collection session dan itu bisa gagal terus lalu login terasa expired. Rekomendasi lokal ----------------- Untuk development lokal yang stabil: APP_URL=http://localhost:8089 SESSION_DRIVER=file CACHE_STORE=file SESSION_COOKIE=ahsp_session_8089 Catatan ------- Kalau nanti pindah ke port lain, sebaiknya ganti juga SESSION_COOKIE. Contoh: - port 8000 -> ahsp_session_8000 - port 8087 -> ahsp_session_8087 - port 8089 -> ahsp_session_8089