Cara menggunakan Personal Access Token Pada Laravel Passport

Pada artikel sebelumnya saya sempat membahas cara ambil token dari user credential email dan password dengan tipe grant password dan lalu melakukan proses pengambilan resources dari token yang didapat tersebut. Sekarang saya coba ingin menulis cara menggunakan Personal Access Token pada Laravel Passport. Dengan konsep yang mirip sama dengan grant password, Personal Access Token ini memiliki kelebihan dalam kemudahan mengakses token, namun ada beberapa kelemahan pula yang harus dihandel oleh programmer.

Pada Personal Access Token, untuk mendapatkan token sangat mudah dengan mengambil data user yang aktif lalu buat token sesuai dengan nama Personal Access Token yang dibuat terlebih dahulu.

Awalnya adalah kita buat dulu Personal Access Token dengan perintah seperti pada dokumentasi Laravel.

php artisan passport:client --personal

Jika perintah ini dilakukan, kita disuruh untuk menuliskan nama identik dari Personal Access Token. Jika berhasil, anda simpan nama tersebut untuk proses pembuatan token.

Nah, Personal Access Token dalam kasus ini saya implement ketika berhasil login, jadi ketika berhasil login ambil data user lalu buat saja tokennya seperti pada gambar dibawah ini.

Laravel Personal Access Token

Terlihat pada gambar diatas, saya ambil data user dengan variable $data, lalu saya create token dengan perintah

$token = $data->createToken('namatokenidentik')->accessToken;

Nah token ini bisa langsung digunakan untuk mengambil data resources api tertentu. Untuk melihatnya, silahkan liat artikel sebelumnya ya.

Masalah yang terjadi jika pakai Personal Access Token ini adalah token bersifat long-lived artinya tidak ada expired sama sekali. Ini sebenernya memiliki arti yang baik atau buruk tergantung kebutuhan aplikasi. Untuk aplikasi yang berkaitan dengan data privasi, token harus dan wajib sering diubah. Ibarat password, kadang anda diminta untuk mengubah password secara berkala?

Untuk itu, masalah Personal Access Token harus dihandel dengan cara mungkin melakukan pengecekan token yang sudah lama di create. Cara melihat token yang ada adalah dengan mengecek table oauth_access_token pada aplikasi Laravel kita.

Masalah lain yang saya lihat adalah ketika user akses login satu user dengan lebih dari satu device atau satu mesin, Personal Access Token ini tetep membuat token, sampai akhirnya token duplicate padahal hanya satu user.

Cara menghandelnya adalah ketika user melakukan logout, panggil saja fungsi untuk menghapus token tersebut dengan perintah.

$token = $request->user()->token()->revoke();

Perintah ini akan menghapus token yang sedang aktif. Sehingga tidak mengalami duplicate token di database kita.

Sempai disini, moga ada manfaatnya ya 🙂

Leave a Reply

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