Authentikasi Laravel 7 dengan JWT

Di tutorial kali ini saya akan membagikan cara menggunakan authentikasi JWT pada Laravel 7. Kita akan menggunakan tymon/jwt-auth package JSON web token authentication for Laravel and Lumen.

Install aplikasi laravel terbaru :

Selanjutnya, masuk ke directory jwt yang baru kita buat, kemudian install tymon/jwt-auth :

Buka config/app.php dan tambahkan baris berikut di bagian provider :

Dan bagian berikut di bagian aliases :

Publish dengan perintah berikut di command line :

Apabila berhasil, file baru yaitu config/jwt.php akan muncul.

Selanjutnya kita akan buat secret key jwt nya dengan menggunakan perintah berikut di terminal :

Langkah selanjutnya adalah mengimplementasikan JWTSubject di model User. Buka App/User.php dan tambahkan baris berikut di bagian use :

Implementasikan pada class User :

Tambahkan juga dua function berikut :

Sehingga User.php menjadi seperti ini :

Langkah berikutnya adalah membuat tabel melalui migrasi. Buka terminal dan jalankan perintah migrate :

Kita akan membuat UserController yang sudah mengimplementasikan JWT. Melalui terminal, buat UserController :

Lengkapi UserController.php dengan menambahkan fungsi untuk login, register, dan mendapatkan profile user yang sedang login, sehingga UserController.php menjadi :

Selanjutnya kita akan coba membuat satu tabel lagi yaitu tabel products yang diisi dengan dummy data :

Buat ProductController :

Tambahkan function product and productOwner sehingga ProductController.php menjadi seperti ini :

Selanjutnya kita buat satu middleware baru, JwtMiddleware :

File baru JwtMiddleware.php akan muncul di dalam folder app/Http/Middleware :

Tambahkan middleware ini di app\Http\Kernel.php pada bagian $routeMiddleware :

Selanjutnya kita akan melakukan modifikasi pada JwtMiddleware.php supaya user yang tidak memilik token tidak bisa mengakses url.

Kita tambahkan routes pada routes/api.php :

Untuk route di atas, apabila user ingin mengakses route product-owner atau route user, user harus memberikan token.

 

Baiklah, setelah semua kode selesai kita buat, mari kita coba melalui Postman. Buka aplikasi Postman kemudian kita coba untuk register satu user. Sebelumnya, nyalakan server laravelnya :

Berhasil melakukan registrasi :

Copy token yang berada di bagian bawah untuk keperluan kita nanti.

Sekarang kita akan coba akses route product-owner.

Kita tidak bisa melakukan akses ke url karena authorization token not found. Sekarang kita coba untuk memberikan token. Tambahkan parameter Authorization dan Bearer + token berikut di bagian Headers :

Sekarang kita berhasil mengakses url.

Coba route satu lagi yang perlu token :

Ini adalah route untuk mengetahui profile user yang terautentikasi. Berhasil setelah kita memberikan parameter Authorization dan juga token di bagian Header.

Sekian tutorial kali ini, apabila masih ada yang belum jelas silahkan tambahan di kolom komentar ya.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.