Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Please nanya stuck di login
Jadi saya kan bikin web pilates untuk pendaftaran nya, nah saya udah sampe lah ke form bagian pendaftaran ny, nah kan ada eror di bagian migration ny, saya otak atik tuh sampe perintahin hapus migration yg terakhir kali, dan abis itu saya php artisan migrate lg, pas saya uji ternyata login nya ngestuck, udh saya pastiin email dan pw sama, ttp gabisa lnjut ke dashboard
2 Jawaban:
Halo.. sayangnya informasinya kurang jelas. Stuck itu terlalu umum. Kamu perlu debug, aktifkan mode debug=true , jadi kamu bisa lihat errornya.
Intip juga isi log kamu.
- Session / Auth table belum sinkron
Kalau kamu sempat hapus migration (terutama users, sessions, atau password_resets), bisa jadi struktur tabel-nya berubah.
Jalankan ini untuk memastikan semua table auth masih ada:
php artisan migrate:status
Pastikan di situ ada:
- users
- password_reset_tokens (atau password_resets)
- sessions (kalau pakai session-based login)
Kalau ada yang hilang, jalankan:
php artisan migrate:fresh
Peringatan: fresh akan hapus semua data di database dan migrasi ulang dari awal. Kalau project masih tahap dev, aman dilakukan.
- Middleware auth tidak mengizinkan redirect
Kadang setelah login berhasil, route dashboard tidak bisa diakses karena belum diizinkan lewat middleware.
Cek file: routes/web.php
Pastikan route dashboard seperti ini:
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth']);
Kalau sudah login tapi tetap kembali ke halaman login, berarti middleware atau session-nya gagal.
- Guard atau Provider di config/auth.php berubah
Buka file:
config/auth.php
Pastikan bagian default seperti ini:
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
dan guard web mengarah ke users provider:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
],
dan provider users mengarah ke model kamu:
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
],
Kalau kamu sempat ganti nama tabel user (misal jadi members atau registrants), pastikan model-nya sesuai.
- Password tidak di-hash
Ini penyebab klasik juga HAHAHHAHA
Kalau kamu isi user secara manual lewat database atau seeding, pastikan password-nya sudah di-hash pakai bcrypt.
Contoh di Tinker:
php artisan tinker
Lalu:
bcrypt('passwordkamu');
Masukkan hasilnya ke kolom password di tabel users. Kalau masih pakai plain text, login pasti gagal walau email & password benar.
- Cek log error
Coba lihat log Laravel:
tail -f storage/logs/laravel.log
atau buka manual file storage/logs/laravel.log.
Setelah kamu klik login, lihat apakah muncul error seperti:
-
Invalid credentials
-
SQL error
-
redirect loop
-
CSRF Token / Session tidak tersimpan
Kalau kamu pakai form login custom, pastikan form login-nya punya:
@csrf
Dan di .env pastikan:
SESSION_DRIVER=file
SESSION_LIFETIME=120
Kalau kamu pakai SESSION_DRIVER=cookie atau array, session bisa hilang setiap request.
Langkah perbaikan singkat:
- Jalankan:
php artisan migrate:fresh --seed
php artisan optimize:clear
-
Pastikan user ada di tabel users.
-
Password user di-hash (bukan plain text).
-
Coba login lagi.