Auth 1
Auth 1
5. Buka file yang baru saja dibuat, dan tambahkan code berikut.
5. Dengan demikian, model Pengguna dapat dilakukan proses Authentikasi seperti halnya
Model User (yang disediakan secara default oleh Laravel), serta memiliki token yang
digunakan untuk proses transaksi pada API.
Authentication: Config/Auth.php
1. Selanjutnya kita perlu melakukan konfigurasi pada Auth.php yang terletak di folder Config.
2. File ini berisikan konfigurasi Authentikasi yang akan digunakan pada project / rest-api yang
sedang berjalan.
3. Buka file Auth.php, ubah nilai default yang ada menjadi berikut.
4. Tambahkan guard pengguna dan provider penggunas.
5.
Authentication: BaseController
1. Kita dapat membuat Controller sebagai template dari response fungsi controller yang lain.
Hal ini merupakan contoh jika kita hendak membuat template atau style response.
2. Buat Base Controler dengan perintah php artisan make:controller API/V1/BaseController
3. Selanjutnya Buka File tersebut, dan tambahkan format function yang kita kehendaki. Sebagai
contoh kita akan membuat fungsi SendResponse dan SendError. Perlu diingat bahwa Base
Controller ini basisnya berasal dari Controller, hanya saja kita lakukan modifikasi dalam
bentuk turunannya. Sehingga perlu dipastikan sudah menginclude kan Controller.
4. Selanjutnya kita buat fungsi SendResponse. Fungsi ini digunakan untuk membuat response
Json yang bersifat sukses dengan format success, data, dan message. Data nantinya akan
dalam berbentuk json atau collection, sesuai dengan kebutuhan dari masing-masing
controller, dan message merupakan tambahan informasi yang dapat diimbukan dalam paket
response.
5. Kita buat fungsi SendError. Fungsi ini digunakan untuk mengirimkan response jika terjadi
kegagalan. Adapun bentuk format yang diberikan tidak jauh berbeda dengan sendResponse,
namun hanya http code yang disesuaikan dengan nilai defaultnya adalah 404.
Authentication: AuthController
1. Buat AuthController dengan perintah php artisan make:controller API/V1/AuthController
2. Tambahkan dependency atau library yang dibutuhkan pada file ini sebagai berikut.
use App\Http\Controllers\API\V1\BaseController as
BaseController; use App\Models\Pengguna;
use Validator;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\
Auth; use Illuminate\Validation\
Rule;
3. Lakukan modifikasi bahwa class AuthController merupakan turunan dari BaseController
yang sudah dibuat pada tahapan sebelumnya.
4. File ini digunakan untuk menghandle aktivitas register dan login oleh user.
5. Buka file AuthController dan kita tambahkan fungsi Register dan Login.
6. Fungsi Register dapat dituliskan sebagaimana code berikut. Dapat diperhatikan bahwa pada
input password, dilakukan enkripsi. Hal ini perlu diakukan karena algoritma Auth di laravel
menggunakan metode bcrypt sehingga password yang diinputkan atau yang disimpan ke
dalam database juga perlu dilakukan enkripsi.
7. Selanjutnya kita buat fungsi Login. Fungsi ini digunakan ketika user melakukan login melalu
API yang kita kembangkan. Adapun field yang dicek adalah email dan password. Setelah
berhasil, maka kita akan dibuatkan token pada bagian createToken. Hasil Token yang
degenerate akan disimpan pada database sebagai token aktif.
8. Kita juga bisa menambahkan fungsi Logout. Fungsi ini digunakan untuk menghapus token
yang sedang aktif dan mengakhir sesi. Jika kita cek kembali pada data di Tabel, maka token
yang sedang aktif akan hilang.
9. Anda dapat mempelajari lebih lanjut terkait token abilities pada dokumentasi laravel
https://laravel.com/docs/11.x/sanctum#token-ability-middleware .
Authentication: Routes/api.php
1. Langkah selanjutnya adalah mengkonfigurasi api.php pada routes.
2. Tambahkan Routes Controller untuk login dan Register.
3. Dan lakukan modifikasi untuk endpoint penggunas dengan melingkupkan dalam authentikasi
sanctum. Hal ini menunjukkan bahwa endpoint tersebut hanya bisa diakses apabila kita
memasukkan authentikasi header berupa token dari login.
4. Tambahkan Routes untuk logout, routes ini dapat dipanggil menggunakan auth:sanctum.
Authentication: Pengujian
Anda bisa melakukan pengujian menggunakan postman dengan scenario.
1. Lakukan pengujian pada langkah 2, Routes/api.php. Pada tahap ini anda bisa mengakses
semua endpoint yang ada.
2. Lakukan pengujian pada langkah 3, Routes/api.php. Pada tahap ini anda hanya bisa
mengakses endpoint register dan login. Sedangkan endpoint lainnya Anda harus
menambahkan header authorization.