Laravel 12 CRUD (MySQL + JWT) #9: Membuat Model User dan Migration (JWT)

Laravel 12 CRUD (MySQL + JWT)
#9 Membuat Model User dan Migration (JWT)

📋 Siapkan tabel users • Pastikan migration dan model siap untuk autentikasi
👤 Setiap aplikasi butuh pengguna! Untuk autentikasi JWT, kita perlu tabel users.
Sebenarnya Laravel sudah menyediakan migration untuk tabel users dan model User secara default. Kita hanya perlu memastikan migration sudah dijalankan dan model sudah dikonfigurasi dengan benar untuk JWT.
Yuk kita cek dan siapkan!

Langkah 1: Cek Migration Users yang Sudah Ada

1 Laravel secara otomatis menyediakan migration untuk tabel users. Buka folder database/migrations. Cari file dengan nama seperti 2014_10_12_000000_create_users_table.php. Ini adalah migration bawaan Laravel.

Isi migration tersebut sudah mencakup kolom yang diperlukan: id, name, email, email_verified_at, password, remember_token, dan timestamps.

💡 Catatan: Jika migration ini tidak ada (misalnya karena proyek dibuat dengan opsi tertentu), kamu bisa membuatnya dengan perintah php artisan migrate:install dan php artisan make:migration create_users_table. Tapi secara default, Laravel sudah menyediakannya.

Langkah 2: Jalankan Migration (Buat Tabel Users)

2 Jika sebelumnya kamu belum menjalankan migration, sekarang waktunya. Di terminal, jalankan:

php artisan migrate

Perintah ini akan membuat semua tabel yang belum ada, termasuk tabel users, password_reset_tokens, dan sessions (jika ada).

✅ Pastikan tidak ada error. Jika ada, periksa kembali file .env dan pastikan MySQL berjalan.

Langkah 3: Cek Model User dan Konfigurasi JWT

3 Model User berada di app/Models/User.php. Di artikel sebelumnya (#8), kita sudah menambahkan trait JWTSubject dan implementasi method getJWTIdentifier() dan getJWTCustomClaims(). Pastikan model User sudah seperti berikut:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Tymon\JWTAuth\Contracts\JWTSubject; // <- authenticatable="" email="" extends="" fillable="[" function="" getjwtidentifier="" hasfactory="" hidden="[" implements="" ini="" jwtsubject="" name="" notifiable="" password="" penting="" protected="" public="" remember_token="" return="" this-="" use="" user="">getKey(); } public function getJWTCustomClaims() { return []; } }

Jika belum, tambahkan seperti di atas.

Langkah 4: Tambahkan User Contoh (Seeder)

4 Untuk memudahkan pengujian autentikasi, kita bisa membuat user contoh. Laravel sudah menyediakan seeder untuk user. Jalankan perintah:

php artisan db:seed --class=UserSeeder

Atau jika ingin membuat user secara manual, gunakan Tinker:

php artisan tinker
App\Models\User::create([ 'name' => 'Admin', 'email' => 'admin@example.com', 'password' => bcrypt('password') ])

Ini akan membuat user dengan email admin@example.com dan password password. Keluar dari Tinker dengan exit.

📌 Tips: Jangan lupa password di-hash dengan bcrypt(). Laravel akan otomatis melakukan hashing saat menyimpan jika menggunakan Hash::make() atau bcrypt().

Langkah 5: Verifikasi Tabel Users di phpMyAdmin

5 Buka phpMyAdmin (http://localhost/phpmyadmin), pilih database siswaapi_db. Pastikan ada tabel users dengan kolom yang sesuai. Klik tabel users untuk melihat data. Jika sudah ada user yang ditambahkan, berarti siap.

🎉 Tabel users siap! Sekarang kita memiliki pengguna yang bisa digunakan untuk login dan mendapatkan token JWT.

Langkah 6: Uji Coba Membuat Token JWT

6 Untuk memastikan semuanya berfungsi, kita bisa mencoba membuat token menggunakan Tinker. Jalankan:

php artisan tinker
$user = App\Models\User::first(); $token = auth('api')->login($user); echo $token;

Jika muncul string panjang (token JWT), berarti konfigurasi berhasil. Token ini bisa digunakan untuk mengakses endpoint yang dilindungi.

⚠️ Peringatan: Jangan pernah membagikan token JWT sembarangan. Token ini adalah kunci akses ke API.
🚀 Model User dan migration siap! Sekarang kita memiliki pengguna dan token JWT. Selanjutnya kita akan membuat endpoint registrasi dan login, lalu melindungi endpoint CRUD siswa dengan middleware JWT.

Ringkasan Langkah

  • ✅ Cek migration users bawaan Laravel.
  • ✅ Jalankan migration: php artisan migrate
  • ✅ Pastikan model User sudah mengimplementasikan JWTSubject.
  • ✅ Tambahkan user contoh via seeder atau Tinker.
  • ✅ Verifikasi tabel users di phpMyAdmin.
  • ✅ Uji pembuatan token dengan Tinker.

📌 Ingat: Tabel users adalah komponen kunci untuk autentikasi. Jaga keamanan password dan token.

(Link akan aktif saat artikel sebelumnya dan selanjutnya terbit)

📘 Laravel 12 CRUD (MySQL + JWT) • #9 Membuat Model User dan Migration (JWT) • 👥 User siap!
Lebih baru Lebih lama

نموذج الاتصال