Contoh proses OAuth di API Accurate Online

Berikut contoh langkah-langkah otentikasi dan otorisasi OAuth di sistem API Accurate Online (AOL) :

Pastikan Aplikasi telah terdaftar . Sebagai contoh, misalkan berikut adalah informasi aplikasi yang telah 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 akan kemudian diarahkan ke https://example.com/aol-oauth-callback#access_token=e8446369-bd56-4731-acea-c0a9e0cc46fa&token_type=bearer&user=%7Bname=John%20Doe,%20email=This email address is being protected from spambots. You need JavaScript enabled to view it. %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 menggunakan metode ini :

  • Metode ini hanya tersedia jika Aplikasi di daftarkan dengan Platform Website.
  • Dengan metode 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 di akses 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 code
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.

Halaman akan diarahkan ke https://example.com/aol-oauth-callback?code=2S8F64jJTOJi1vuCxG8G pastikan aplikasi di halaman tersebut dapat membaca dan menyimpan code yang terkirim di parameter, 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/token
Method HTTP 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:e133410eb632596255adfbe5a49990fe

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": "This email address is being protected from spambots. You need JavaScript enabled to view it.
 "
  }
}

Sampai 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 .