
Laravel – API atau webservice sering digunakan untuk komunikasi antar aplikasi. Biasanya digunakan dalam pengembangan aplikasi berbasis mobile.
Di tutorial Membuat Webservice Simple Menggunakan Laravel kita sudah membuat webservice sederhana dan memberikan otentikasi yang statis. Pada kesempatan kali ini kita akan membuat API dan menggunakan passport laravel sebagai otentikasinya.
Apa itu Passport Laravel?
Laravel membuat otentikasi API menjadi lebih mudah menggunakan passport laravel yang menyediakan implementasi server OAuth2 untuk pengembangan aplikasi laravel.
Poin yang akan disampaikan.
- Membuat API Login
- Membuat API Register
- Menampilkan data
- Membuat API Logout
Langkah 1 : Instalasi Laravel
Instal laravel terlebih dahulu.
1 |
composer create-project --prefer-dist laravel/laravel api_test |
Langkah 2 : Instalasi Passport Package
1 |
composer require laravel/passport |
Setelah selesai instal paskage nya, buka file config/app.php dan tambahkan kode dibawah di dalam “providers”.
1 2 3 4 5 |
'providers' =>[ Laravel\Passport\PassportServiceProvider::class, ], |
Langkah 3 : Jalankan Migrate
Sebelumnya pastikan .env proyek kamu sudah di setting ke database. Untuk contoh dalam tutorial ini saya menggunakan postgresql.
1 |
php artisan migrate |
Setelah menjalankan migrasi maka beberapa tabel baru akan dibuat seperti oauth_access_token dsb yang akan menyimpan clients dan access token.

Langkah 4 : Instal Passport
Tahap ini untuk generate token keys untuk keamanan.
1 |
php artisan passport:install |
Langkah 5 : Konfigurasi
Pada langkah ini, ada beberapa hal yang harus dikonfigurasi yaitu model, service provider dan auth.
app/User.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?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; protected $fillable = [ 'name', 'email', 'password', ]; protected $hidden = [ 'password', 'remember_token', ]; protected $casts = [ 'email_verified_at' => 'datetime', ]; } |
app/Providers/AuthServiceProvider.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?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 { protected $policies = [ 'App\Model' => 'App\Policies\ModelPolicy', ]; public function boot() { $this->registerPolicies(); Passport::routes(); } } |
config/auth.php
1 2 3 4 5 6 7 8 9 10 11 12 |
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', //'hash' => false, ], ], |
Langkah 6 : Membuat API Route
Laravel menyediakan routes/api.php untuk menulis route khusus API.
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::post('login', 'API\UserController@login'); Route::post('register', 'API\UserController@register'); Route::group(['middleware' => 'auth:api'], function(){ Route::post('details', 'API\UserController@details'); Route::post('logout', 'API\UserController@logout'); }); |
Langkah 7 : Membuat Controller
Kita akan membuat UserController.php menggunakan migration sebagai berikut.
1 |
php artisan make:controller API/UserController |
Kemudian buka file app/Http/Controllers/API/UserController.php , dan tambahkan kode berikut.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
<?php namespace App\Http\Controllers\API; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\User; use Illuminate\Support\Facades\Auth; use Validator; class UserController extends Controller { public $successStatus = 200; public function login(){ if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){ $user = Auth::user(); $success['token'] = $user->createToken('nApp')->accessToken; return response()->json(['success' => $success], $this->successStatus); } else{ return response()->json(['error'=>'Unauthorised'], 401); } } public function register(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required', 'email' => 'required|email', 'password' => 'required', 'c_password' => 'required|same:password', ]); if ($validator->fails()) { return response()->json(['error'=>$validator->errors()], 401); } $input = $request->all(); $input['password'] = bcrypt($input['password']); $user = User::create($input); $success['token'] = $user->createToken('nApp')->accessToken; $success['name'] = $user->name; return response()->json(['success'=>$success], $this->successStatus); } public function logout(Request $request) { $request->user()->token()->revoke(); return response()->json(['success' => 'User Telah logout'], $this->successStatus); } public function details() { $user = Auth::user(); return response()->json(['success' => $user], $this->successStatus); } } |
Sampai tahap ini API sudah selesai dibuat, sekarang kita jalankan.
1 |
php artisan serve |
Kemudian buka aplikasi Postman, pastikan sudah instal sebelumnya. Kita akan melakukan testing API yang sudah dibuat di atas.
Register:

Login:

Details:
Untuk melakukan akses data di api yang sudah kita buat tadi, jangan lupa untuk memasukkan token yang sudah didapatkan ketika kita melakukan login.

Logout:

Akhirnya semua langkah untuk membuat Otentikasi API Menggunakan Passport Laravel telah selesai.
Semoga apa yang saya sampaikan bermanfaat 🙂