Copy-Paste Token dengan Postman Jadi Lebih Mudah

Restful pasti beberapa menggunakan sistem auth token dimana token menjadi key untuk bisa masuk mengakses data resource tertentu yang sifatnya tidak public. Misalnya, jika ingin mengakses data order dari satu customer tertentu, maka untuk mengaksesnya kita membutuhkan identitas order milik siapa ini? Nah biasanya kan kita pakai session, di Restful tidak mengenal session jadi perlu token untuk mengetahui id atau kepemilikan order tersebut.

Token ini bersifat sementara, jika temen-temen menggunakan tokopedia/bukalapak apps android. Kadang mereka meminta untuk login ulang. Kenapa login ulang? karena token sudah expired jadi kita perlu mendapatkan token lagi dengan cara login kembali ke sistem mereka.

Pada real kenyataannya adalah orang testing atau programmer pasti melakukan test untuk akses data order dengan token. Nah karena token ini berubah-ubah, jika di Postman saya biasanya akses kembali auth/login. Lalu setelah dapet token, token itu saya copy lalu saya paste pada resources order di headernya. Jadi repot mesti copy-paste bolak-balik jika token berubah.

Untungnya, Postman lagi-lagi memudahkan kita dalam melakukan development/testing dengan linkungan postman. Di Postman ada istilah “Test”, dalam artian linkungan untuk melakukan testing. Ada banyak langkah-langkahnya sebenernya, temen-temen bisa lihat di link ini untuk dokumentasi lebih lengkap. https://www.getpostman.com/docs/postman/scripts/test_scripts

Balik ke kasus kita tadi, kita ingin ketika kita mendapatkan token baru, resource seperti order atau resource lain seperti data profile, data history wallet atau data lainnya yang terikat dengan token itu otomatis ter-set/tersimpan dengan token yang baru. Bagaimana caranya set di Postman?

Pada endpoint login/auth temen-temen, tinggal ditambahkan kode untuk test di Postman seperti endpoint saya ini.

Postman Test 1
Postman Test 1

Pada gambar saya arahkan ke tab “Tests”, lalu saya isi seperti diatas:
var jsonData = JSON.parse(responseBody);. Kita buat variable dengan nama jsonData dimana isinya itu adalah result dari endpoint /auth ini. Terlihat JSON.parse(responseBody) melakukan parse dari responseBody si Postman.
tests[“Access Token is not empty”] = jsonData.access_token !== undefined;. Kode ini adalah memberikan flag/tanda suatu test atau memberikan nama suatu flag/tanda test. Pada kode itu saya kasih nama test “Access token is not empty”, nanti valuenya itu berupa boolean (false or true) sesuai dengan kondisi dari pembanding setelahnya yaitu kode “jsonData.access_token !== undefined”. Kode tersebut untuk mengecek bahwa responseBody itu yang kita simpan di variable jsonData itu pasti memiliki data access_token.
postman.setEnvironmentVariable(“jwt_token”, jsonData.access_token);. Pada kode ini saya set variable/label Postman yaitu ‘jwt_token’ dengan isi dari jsonData.access_token. Nah variable/label Postman ini yang kita set pada resource yang membutuhkan token. Contoh kasus adalah misalnya berikut ini.

Postman Test 2
Postman Test 2

Format ini adalah format Flask-JWT. Jadi Authorization di isi value cukup dengan JWT {{ jwt_token }}. Nah jwt_token ini didapat dari tab “Tests” di endpoint /auth barusan.

Jadi dengan cara ini kita tidak perlu copy-paste token berulang kali pada Postman.

Keren ya si Postman 🙂

%d bloggers like this: