Berikut contoh langkah-langkah untuk otentikasi dan otorisasi OAuth di sistem API pada Accurate Online, pastikan dahulu bahwa aplikasi sudah terdaftar. Sebagai contohnya, berikut adalah informasi aplikasi yang sudah terdaftar :
Nama Aplikasi
Demo Example
Platform
Website
URL Website
https://example.com
URL OAuth Callback
https://example.com/aol-oauth-callback
API Key
42f12a10-08df-4b91-b1e4-c4465d686072
OAuth Secret
e133410eb632596255adfbe5a49990fe
Signature Secret
268a1a7fbd0002ccf353d336982a11fe
Arahkan URL browser ke https://accurate.id/oauth/authorize dengan rincian sebagai berikut :
URL | https://accurate.id/oauth/authorize |
Method | HTML |
Parameter | |
client_id | 42f12a10-08df-4b91-b1e4-c4465d686072 |
response_type | Token |
redirect_uri | https://example.com/aol-oauth-callback |
scope | item_view item_save sales_invoice_view |
Web browser akan menampilkan Halaman Otorisasi, tekan tombol Beri Akses untuk melanjutkan.
Web browser kemudian akan diarahkan ke :
https://example.com/aol-oauth-callback#access_token=e8446369-bd56-4731-acea-c0a9e0cc46fa&token_type=bearer&user=%7Bname=John%20Doe,%20email=john@example.com%7D.
Pastikan aplikasi di halaman tersebut dapat membaca dan menyimpan akses token yang ada di alamat URL, yang pada contoh ini adalah e8446369-bd56-4731-acea-c0a9e0cc46fa.
Proses OAuth telah selesai dan sudah didapatkan akses token yang dapat digunakan untuk membaca database Accurate Online lewat API.
Alternatif menggunakan OAuth Grant Type Authorization Code
Pada contoh di atas proses OAuth digunakan dengan metode Grant Type Implicit. Sebagai alternatif, sistem API Accurate Online juga bisa menggunakan metode OAuth Grant Type Authorization Code.
Berikut adalah hal yang perlu diperhatikan jika menggunakna metode ini :
- Metode ini hanya tersedia jika aplikasi didaftarkan dengan platform Website
- Dengan metodie ini, aplikasi dapat melakukan refresh Akses Token, yaitu memperpanjang masa berlaku Akses Token yang sudah expired tanpa harus mengulang seluruh proses OAuth
- Secara keamanan metode ini lebih aman karena Akses Token tidak diberikan lewat web browser namun menggunakan HTTP POST yang dikomunikasikan langsung antara server aplikasi dengan server Accurate Online
- Metode ini akan menggunakan OAuth Secret yang didapatkan saat pendaftaran aplikasi di https://accurate.id/developer. Untuk mencegah OAuth Secret dari aplikasi terbaca oleh pihak lain, pastikan aplikasi hanya dapat diakses oleh pihak yang berhak dan terinstall pada perangkat yang terjamin keamanannya.
Berikut adalah langkah-langkah dengan menggunakan metode Grant Type Authorization Code :
Arahkan URL browser ke https://accurate.id/oauth/authorize dengan rincian sebagai berikut
URL | https://accurate.id/oauth/authorize |
Method | HTML |
Parameter | |
client_id | 42f12a10-08df-4b91-b1e4-c4465d686072 |
response_type | Token |
redirect_uri | https://example.com/aol-oauth-callback |
scope | item_view item_save sales_invoice_view |
Web browser akan menampilkan Halaman Otorisasi, tekan tombol Beri Akses untuk melanjutkan.
Web browser kemudian akan diarahkan ke :
https://example.com/aol-oauth-callback?code=2S8F64jJTOJi1vuCxG8G.
Pastikan aplikasi di halaman tersebut dapat membaca dan menyimpan akses token yang ada di alamat URL, yang pada contoh ini adalah 2S8F64jJTOJi1vuCxG8G.
Selanjutnya lakukan HTTP POST ke https://accurate.id/oauth/token dengan rincian sebagai berikut
URL | https://accurate.id/oauth/authorize |
Method | HTML POST |
Header | |
Authorization | Basic NDJmMTJhMTAtMDhkZi00YjkxLWIxZTQtYzQ0NjVkNjg2MDcyOmUxMzM0MTBlYjYzMjU5NjI1NWFkZmJlNWE0OTk5MGZl |
Request Body | |
code | 2S8F64jJTOJi1vuCxG8G |
grant_type | authorization_code |
redirect_uri | https://example.com/aol-oauth-callback |
Nilai NDJmMTJhMTAtMDhkZi00YjkxLWIxZTQtYzQ0NjVkNjg2MDcyOmUxMzM0MTBlYjYzMjU5NjI1NWFkZmJlNWE0OTk5MGZl adalah hasil Base64 Encode dari 42f12a10-08df-4b91-b1e4-c4465d686072:e133410eb6 32596255adfbe5a49990fe.
Metode menambahkan informasi Authorization di Header seperti ini adalah metode HTTP Basic Authentication dengan API Key sebagai user dan OAuth Secret sebagai password.
Hasil dari HTTP POST ini adalah sebagai berikut :
{
“access_token”: “a83278c3-6018-4374-9f12-4c5b6a09ab16”,
“token_type”: “bearer”,
“refresh_token”: “5f32ef57-a3ba-4c6d-a763-c83c67350c73”,
“scope”: “item_view item_save sales_invoice_view”,
“user”: {
“name”: “John Doe”,
“email”: “john@example.com”
}
}
Sampai tahap ini proses OAuth telah selesai dan sudah didapatkan Akses Token a83278c3-6018-4374- 9f12-4c5b6a09ab16 yang dapat digunakan untuk membaca database Accurate Online lewat API.