Halo teman-teman dewakoding.com, kali ini kita akan sama-sama belajar bagaimana membuat Restful API menggunakan framework Laravel (Bahasa PHP). Ada beberapa cara untuk membuat Restful API di Laravel, kali ini kita akan membuat dengan library passport.
Nantinya dengan library passport ini, request dari client menggunakan mekanisme OAuth2. Yang akan kita coba buat adalah
- API Register
- API Login
- API Get Profile User
- API Logout
Oke langsung saja, pada kali ini kita akan melakukan konfigurasi passport di project Laravel kita ya. Diasumsikan disini teman-teman udah punya project laravel yaa.
Pertama ketikan perintah dibawah ini
composer require laravel/passport

akan muncul tampilan seperti diatas…biarkan saja sampai selesai
Kemudian buka file config/app.php
, ketikan code berikut di dalam array providers
Laravel\Passport\PassportServiceProvider::class
seperti gambar dibawah ini

Kemudian jalankan perintah migrasi database dibawah ini di terminal
php artisan migrate
secara otomatis, laravel akan membuat 5 table di database

Setelah sukses menjalankan migrasi database, selanjutnya kita jalankan perintah ini untuk membuat client secret
php artisan passport:install
Langkah selanjutnya kita lakukan konfigurasi penambahan kode dibeberapa bagian, diantaranya
- app/Providers/AuthServiceProvider.php
- Models/User.php
- config/auth.php
Ubah kodingan pada AuthServiceProvider.php seperti dibawah ini
<?php
namespace App\Providers;
use Laravel\Passport\Passport;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Passport::routes();
//
}
}
Ubah kodingan Models/User.php, seperti dibawah ini
<?php
namespace App;
use Laravel\Passport\HasApiTokens;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use HasApiTokens,Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
Ubah kodingan config/auth.php seperi dibawah ini
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
]
Konfigurasi sudah selesai, lanjut ke part 2 yaa…