Otentifikasi dan Otorisasi

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

  1. Client ID
    Client ID digunakan sebagai ID unik pengenal aplikasi. Dalam OAuth 2.0, API Key ini digunakan sebagai parameter Client ID

  2. 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 parameterValue
grant_typeRequired, isi dengan client_credentials

Payload Header Request, harus berisi parameter sebagai berikut :

Header parameterValue
AuthorizationRequired, 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.