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', 'CityAPIController@show_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 :
Pada kesempatan kali ini kita akan membahas tentang cara membuat API otentikasi menggunakan passport di Laravel. Api sering juga di kaitkan sebagai Web Service digunakan untuk berkomunikasi atau mengintegrasikan dan mengizinkan dua aplikasi yang berbeda secara bersamaan untuk saling terhubung satu sama lain..
Poin yang kita akan buat dalam pembelajaran kali ini :
Masukan command “cd C:\xampp\htdocs\laravel_passport” pada jendela Command Prompt untuk masuk ke direktori project . saya beri nama project saya tadi dengan nama laravel_passport
lalu, silahkan ketik command di bawah ini untuk menginstall package passport di Laravel:
composer require laravel/passport
jika sudah terinstall, buka project anda di text editor (visual studio code/sublime).
3. Konfigurasi Package Passport
Agar package ini bisa dijalankan, maka kita perlu mendaftarkannya dulu di config/app.php. Tambahkan:
Laravel\Passport\PassportServiceProvider::class,
4. Buat Database dan Konfirguarasi
Buat database dengan nama laravel_passport,Lalu tambahkan pada bagian .env seperti berikut:
selanjutnya buka terminal Visual Studio Code, kemudian migrate dengan command :
php artisan migrate
Install passport dengan command agar mendapatkan token keys.
php artisan passport:install
5 .Ubah Model User
Buka User.php di dalam direktori app/User.php,kemudian ubah seperti berikut :
<?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',
];
}
6. Ubah AuthService Provider
buka AuthServiceProvider.phpdi direktoriapp/Providers/AuthServiceProvider.php kemudian ubah seperti 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();
}
}
7. Ubah Auth
Buka Config/auth.php , lalu cari kode seperti ini: