Modul Laravel Auth
Modul Laravel Auth
1.1. Tujuan
Setelah mengikuti modul ini mahasiswa diharapkan dapat:
1. Memahami konsep autentikasi dan otorisasi dalam pengembangan REST API.
2. Mengimplementasikan sistem autentikasi berbasis token menggunakan Laravel
Sanctum.
3. Mengamankan endpoint API berdasarkan peran (role) atau kepemilikan data
(ownership).
4. Menguji endpoint menggunakan postman.
1.2. Alat dan Bahan
1. XAMPP / Laravel Sail / Laragon / Valet
2. Composer
3. Laravel 12
4. Postman
5. MySQL / MariaDB
6. Laravel Sanctum
1.4.4. Policy
Policy adalah class di Laravel yang berisi aturan otorisasi untuk model tertentu. Setiap aksi
seperti view, create, update, dan delete bisa dibatasi dengan kondisi tertentu, seperti apakah
user adalah pemilik data atau memiliki role tertentu.
1.5. Jurnal
Dalam modul ini, mahasiswa akan mengembangkan API berbasis Laravel Sanctum untuk
manajemen postingan. Fitur yang akan dibangun meliputi:
• Register, Login, Logout menggunakan Laravel Sanctum
• Melihat daftar postingan
• Menambahkan, mengubah, dan menghapus postingan
• Hanya user pemilik postingan yang dapat mengubah postingannya
• Admin dapat menghapus semua postingan
1.5.1. Clone Project Github
Pertama-tama clone project yang telah tersedia di github, kemudian masuk ke proyek.
*(untuk keamanan dan best practice, sebaiknya akun admin dibuat langsung melalui seeder
atau manual lewat database, bukan melalui endpoint publik seperti register)
1.5.7. Memperbarui model User
Import HasApiTokens:
Gunakan HasApiTokens sebagai Traits di User model, dan update fillable dengan kolom role:
Kemudian isi:
1.6.2. Menambahkan resource Post dengan middleware pada API routes
(User yang tidak login atau tidak memiliki token tidak bisa melihat post)
i. Logout
Method : POST
URL : /api/logout
Authorization:
o Type: Bearer Token
o Isi Token yang telah di copy dari response saat login
j. Login admin
Method : POST
URL : /api/login
Body (x-www-form-urlencoded):
o email: [email protected]
o password: admin123
Copy token dari response/hasil request. Misal:
1|ZjAe8tJFJC5MmZ0584cGGBkhV6mplaCdNFibJqnyf957efc5
k. Admin menghapus post
Method : DELETE
URL : /api/posts/1
Authorization:
o Type: Bearer Token
o Isi Token yang telah di copy dari response saat login admin