Modul Laravel: Membuat API Autentikasi

Autentikasi merupakan proses yang digunakan user untuk mendapatkan akses ke suatu sistem. Proses autentikasi secara umum terdapat login, register, dan logut. Pada modul kali ini dibuat autentikasi berupa API menggunakan laravel, dengan API modul ini nantinya dapat dengan mudah digunakan pada banyak platform aplikasi misalnya website ataupun aplikasi android secara bersamaan.

 

Algoritma

Dalam modul kali ini akan membuat empat fungsi autentikasi yaitu register, login, cek token, dan logout. Fungsi register digunakan untuk mendaftarkan user kedalam sistem, login digunakan user yang sudah terdaftar untuk masuk dan mendapatkan akses, cek token digunakan untuk memverifikasi user yang masuk ke dalam sistem, dan logut untuk mengeluarkan user dari sistem.

1. Fungsi register

Dalam fungsi register ini berguna untuk mendaftarkan user supaya bisa masuk ke sistem. Fungsi ini memiliki inputan berupa username, password, fullname, email, dan phone. Langkah awalnya adalah memvalidasi inputan yang dimasukkan jika semua inputan yang dimasukkan sesuai maka proses register akan dilanjutkan dengan menyimpan data user. Setelah sukses maka user akan dapat login menggunakan username atau email atau phone dan password yang telah di masukkan.

 

2. Fungsi login

Dalam fungsi login ini bertujuan untuk mendapatkan akses masuk ke dalam sistem, dalam fungsi ini memiliki inputan berupa username(username atau phone atau email) dan password, serta output berupa token. Langkah pertama adalah adalah mevalidasi inputan jika semua inputan sesuai maka akan dilanjutkan ke proses selanjutnya. Kemudian adalah melakukan pengecekan terhadap username jika terdaftar maka akan dilanjutkan ke proses selanjutnya. Setelah pengecekan username selanjutnya adalah pengecekan password sesuai dengan yang terdaftar di database jika sesuai maka proses selanjutnya adalah generate token, dan token tersebut akan digunakan sebagai data kembalian.

 

3. Fungsi cek token

Dalam fungsi cek token memiliki tujuan untuk memverivikasi token yang dihasilkan dari proses login. Fungsi ini memiliki data masukan berupa token dan keluaran berupa data user. Langkah pertama adalah memvalidasi masukan jika sesuai maka langkah selanjutnya akan melakukan pengecekan terhadap token jika sesuia dengan yang ada di database maka akan dilanjutkan ke proses selanjutnya. Kemudian melakukan pengecekan terhadap token apakah token itu sudah expired atau tidak, jika tidak maka sistem akan mengembalikan data user yang tersimpan dalam token.

 

4. Fungsi logout

Dalam fungsi logout memiliki tujuan untuk menghilangkan akses yang dimiliki token. Fungsi ini memiliki data masukan berupa token dan keluaran berupa data user. Langkah pertama adalah memvalidasi masukan jika sesuai maka langkah selanjutnya akan melakukan pengecekan terhadap token jika sesuai dengan yang ada di database maka akan dilanjutkan ke proses selanjutnya. Selanjutnya adalah melakukan update terhadap token mengganti statusnya menjadi tidak aktif.

 

Database

Dalam project ini terdapat tiga tabel yaitu tabel users, profile, dan token. Tabel users berelasi one to one terhadap tabel profile dan tabel users berelasi one to many dengan tabel token. Dalam tabel users terdapat kolom id, username, password, dan status. Kolom id merupakan primary key dari tabel users, username dan password merupakan data yang akan digunakan untuk login. Kolom status digunakan untuk mengetahui status dari user. Tabel profile berisi id, id_user, fullname, email, dan phone. Kolom id merupakan primary key, sementara id_user adalah foreign key dari tabel users. Sementara kolom lain merupakan pelengkap dari profile user, email dan phone juga bisa digunakan untuk login. Tabel token berisi id, id_user, code, dan status. Kolom id merupakan primary key, sementara id_user merupakan foreign key dari tabel user, sementara code merupakan token yang dihasilkan pada saat user login, sedangkan status merupakan status dari token berisi aktif atau tidak aktif.

 

Migration

Berdasarkan desain database maka akan dibuat tiga migrasi untuk membuat tabel pada database yaitu migrasi tabel users, profile, dan token. Pertama hapus file yang ada pada folder "database/migrations" karena tidak dibutuhkan. Kemudian buat file migrasi.

1. Migrasi tabel user

php artisan make:migration create_users_table

Setelah itu buka filenya kemudian masukkan code untuk membuat rancangan tabelnya. Dalam file migrasi ini berisi perintah untuk membuat tabel users dengan kolom id, username berupa string unik yang tidak boleh sama antar data, password berupa text, status berupa boolean, serta timestamps yang berisi data created_at dan updated_at.


2. Migrasi tabel profile

php artisan make:migration create_profile_table

Setelah itu buka filenya kemudian masukkan code untuk membuat rancangan tabelnya. Dalam file migrasi ini berisi perintah untuk membuat tabel profile dengan kolom id, id_user berupa bigInteger, fullname yang berupa string, email yang berupa string unik, phone yang berupa string unik, serta timestamps yang berisi data created_at dan updated_at.


3. Migrasi tabel token

php artisan make:migration create_token_table

Setelah itu buka filenya kemudian masukkan code untuk membuat rancangan tabelnya. Dalam file migrasi ini berisi perintah untuk membuat tabel token dengan kolom id, id_user berupa bigInteger, code berupa text, status berupa boolean, serta timestamps yang berisi data created_at dan updated_at.

 

Setelah membuat file migrasi diatas setting file env pada laravel untuk database yang digunakan, seperti koneksi database, host, port, nama database, username, dan password. 

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mikamerah_auth
DB_USERNAME=root
DB_PASSWORD=

Kemudian jalankan migrasinya makan tiga tabel tersebut akan secara otomatis terbuat. 

php artisan migrate

 

Model

Berdasarkan database dibuat tiga model yang digunakan maka untuk memudahkan dalam pengolahan data.

1. Model users

php artisan make:model /models/users

Perintah diatas digunakan untuk membuat model users yang dibuat pada folder app/Models.


Dalam tabel users memiliki relasi dengan tabel token dan tabel profile, maka buat dua function untuk relasi dengan tabel token dan tabel profile. Dalam function token berisi relasi tabel users dengan tabel token yaitu hasMany berarti satu users memiliki banyak token. Dalam function token berisi relasi tabel users dengan tabel profile yaitu hasOne berarti satu users memiliki satu profile.

 

2. Model profile

php artisan make:model /models/profile

Perintah diatas digunakan untuk membuat model profile yang dibuat pada folder app/Models.


Dalam tabel users memiliki relasi dengan tabel users, maka buat function untuk relasi dengan users. Dalam function user berisi relasi tabel profile dengan tabel users yaitu belongsTo berarti satu profile dimiliki oleh satu users. Untuk tambahan buat variable tabel yang digunakan untuk deklarasi nama tabel yang ada dalam database.

 

3. Model token

php artisan make:model /models/token

Perintah diatas digunakan untuk membuat model token yang dibuat pada folder app/Models.


Dalam tabel token memiliki relasi dengan tabel users, maka buat function untuk relasi dengan users. Dalam function user berisi relasi tabel profile dengan tabel users yaitu belongsTo berarti satu token dimiliki oleh satu users. Untuk tambahan buat variable tabel yang digunakan untuk deklarasi nama tabel yang ada dalam database.

 

Controller

Dalam modul ini dibuat satu controller untuk menampung empat fungsi yang sudah dirancang. Pertama dibuat satu controller dengan nama AuthController.

php artisan make:controller API/AuthController

Command tersebut akan membuat controller pada folder app/Http/Controllers/API, setelah itu tambahkan library dan model yang dibutuhkan di controller tersebut.

use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Crypt;
use DB;
use Carbon\Carbon;
use App\Models\Users;
use App\Models\Profile;
use App\Models\Token;

Kemudian buat fungsi register, login, cek token, dan logout:

1. Fungsi register


2. Fungsi login


Dalam fungsi login memanggil fungsi generate token yang berguna untuk membuat token baru untuk user berikut fungsinya


3. Fungsi cek token


4. Fungsi logout


Dalam semua fungsi tersebut memanggil get respon yang digunakan sebagai data kembalian fungsi get respon ini dibuat untuk menseragamkan response yang didapat dari setiap api yang dibuat, berikut fungsinya

 

Setelah semua fungsinya dibuat tambahkan route pada file routes/api sehingga fungsi-fungsi tersebut bisa diakses


Testing

Untuk melakukan testing dilakukan dengan cara menggunakan aplikasi postman. Pertama jalankan project dengan cara:

php artisan serve

maka laravel secara otomatis akan berjalan pada server localhost:8000. Kemudian buka aplikasi postman dan buat request:

1. API register

 

2. API login

 

3. API cek token


4. API logout


Dokumentasi

1. Membuat project baru

 

2. Membuat file migrasi

 

3. Menjalankan file migrasi, membuat file model dan controller


Project

1. Github

https://github.com/safriansah/mikamerah-auth

 

2. Hosting 

https://mikamerah-auth.000webhostapp.com/

Modul Laravel: Membuat API Autentikasi Modul Laravel: Membuat API Autentikasi Reviewed by Syafriansyah Muhammad on 8/22/2020 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.