Authorization Token Api menggunakan middleware

Jadi kali ini saya akan membuat Authorization Token menggunakan middleware.

Membuat Middleware

yang pertama adalah, kita membuat middleware denga mengetikan :

php artisan make:middleware TokenAccess

lalu buka file TokenAccess.php yang berada di app\Http\Middleware, masukan baris berikut :

class TokenAccess
{  
   public function handle($request, Closure $next)
    {
     dd(str_random(50));    
    }
}

oiyah kenapa kita memasukan “dd(str_random(20))”, karna kita ingin membuat String Alfanumerik secara Acak yang akan nanti kita gunakan sebagai token Authorization.

Jalan kan dd nya

buka file api.php berada di routes\api.php dan tambah kan seperti berikut :

Route::group(['middleware' => ['tokenaccess']], function () {
  Route::get('cities', '[email protected]_city');
});

Setelah itu buka postman, lalu masukan http://127.0.0.1:8000/v1/cities :

Dan lalu kita mendaptkan Alfanumerik acak, yang nanti kita akan gunakan sebagai token Authorization

Ubah kembali file TokenAccess.php

Buka lagi file TokenAccess.php dan tambah kan code seperti berikut :

public function handle($request, Closure $next)
    {    $token='7qSLoQSLI9uWelaI2zeYmMlnLW4OiGIA67yEqKkw4DCPBQfQNw';
      if(!$request->header('Authorization')){
      return response()->json(['success' => false,    'status' => 401, 'message' => 'unauthorized'], 401);
     }else{
         if($request->header('Authorization') !== $token){
                return response()->json(['success' => false,    'status' => 401, 'message' => 'unauthorized'], 401);
      }
    }
     return $next($request);
  }

variabel token akan menjadi authorization kita saat mengakses semua api yang sudah kita buat, seperti cities.

Berhasil

jika berhasil maka akan tampil data nya seperti berikut :

Jika Gagal

Jika di Headers kita hapus token authorization, makan akan Tampil error seperti berikut ini :

Oke itu saja cara Authorization Token Api menggunakan middleware

terimakasi 🙂

Leave a Reply

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