Otentifikasi dan Otorisasi OAuth
OAuth 2.0 merupakan sebuah standar framework otorisasi yang memungkinkan aplikasi pihak ke-3 untuk mendapatkan akses terbatas terhadap data yang dimiliki oleh pengguna Portapro/Eces. Framework ini juga digunakan oleh berbagai layanan berbasis web lainnya seperti: Facebook, Google, dll.
Sebelum dapat melakukan proses OAuth, pastikan aplikasi anda sudah terdaftar pada aplikasi Portapro. Untuk setiap aplikasi yang didaftarkan, akan memperoleh credential yaitu :
Client Credential
-
Client ID
Client ID digunakan sebagai ID unik pengenal aplikasi. Dalam OAuth 2.0, API Key ini digunakan sebagai parameter Client ID -
Client Secret
Client Secret digunakan untuk menukar Authorization Code menjadi Access Token pada flow Grant Type: Client Credential.
Contoh credential aplikasi pihak ke-3 yang sudah didaftarkan pada Portapro :
{
"name": "PortaPro Password Grant Client",
"user_id": 1,
"redirect": "http://porta-api-public.local",
"password_client": true,
"personal_access_client": false,
"revoked": false,
"updated_at": "2023-08-12T05:02:47.000000Z",
"created_at": "2023-08-12T05:02:47.000000Z",
"id": 2112,
"secret_key": "SampleClientSecretKey..Xasdasaz"
}Untuk dapat mendapatkan Client Credential, pihak partner/developer terlebih dahulu harus terdaftar pada aplikasi kami
Agar aplikasi pihak ke-3 dapat mengakses data pengguna aplikasi PortaPro. maka harus melewati beberapa proses sebegai berikut :
Access Token
Access Token merupakan kode akses bagi aplikasi pihak ke-3 untuk dapat melakukan akses data pengguna aplikasi PortaPro/Eces.
Pada tahap ini, aplikasi pihak ketiga melakukan request ke endpoint : https://api.portapro.co.id/oauth/token (opens in a new tab) dengan parameter encode application/x-www-form-urlencoded sebagai berikut :
| Body parameter | Value |
|---|---|
| grant_type | Required, isi dengan client_credentials |
Payload Header Request, harus berisi parameter sebagai berikut :
| Header parameter | Value |
|---|---|
| Authorization | Required, String Base 64 encoded yang berisi client ID dan client secret key. Format isi field harus seperti berikut : Authorization: Basic <base64 encoded client_id:client_secret> |
Berikut contoh proses request acces token pada javascript :
Setelah acces token berhasil didapat, maka aplikasi pihak ke-3 perlu menyimpan access token tersebut untuk selanjutnya digunakan saat mengakses data pengguna aplikasi PortaPro/Eces.