02 November 2017 09.22

UNIRA API (Authentification)

Universitas Madura saat ini sedang mengembangkan dan membangun sistem data tunggal terpusat dengan memanfaatkan REST API.

Authentifikasi

REST API Universitas Madura memiliki empat method yaitu:

  1. GET: Mendapatkan resource yang ada di API.
  2. POST: Menambahkan resource baru untuk disimpan diserver.
  3. PUT: Mengubah atau memodifikasi resource yang sudah tersimpan.
  4. DELETE: Menghapus resource yang tersimpan

Hampir semua method GET tidak perlu menggunakan autentifikasi kecuali untuk data-data tertentu yang bersifat penting. Sedangkan method POST, PUT dan DELETE semua dilindungi authentifikasi berupa token yang dikirimkan lewat header yang dikirimkan oleh klien.

Skema URL

Semua request yang dilakukan ke API Unira memiliki skema sebagai berikut:

-- GET/POST --

https://api.unira.ac.id/v1/<resource>[/<subresource>]
-- PUT/DELETE --

https://api.unira.ac.id/v1/<resource>[/<id>]

** karakter v1 menunjukkan versi dari API, akan ada perubahan jika memang telah dibuat versi berikutnya.

JWT (JSON Web Tokens)

Menurut deskripsi sekilas di situs jwt.io, JSON Web Token (JWT) adalah standar terbuka yang mendefinisikan sebuah cara yang ringkas dan self contained untuk secara aman mentransmisikan informasi antarpihak dalam bentuk object JSON. Informasi ini dapat diverifikasi dan dipercaya karena ditandatangani secara digital.

JSON Web Tokens terdiri dari tiga bagian yang dipisahkan oleh karakter dot/titik (.) yang merupakan:

  1. Header
  2. Payload
  3. Signature

Implementasi JWT di API Unira

API Universitas Madura menggunakan dua macam token yaitu:

  • Refresh Token: Token permanen yang harus disimpan oleh klien yang digunakan untuk memperbarui access token. Token dapat disimpan di penyimpanan yang umum dan permanen seperti localStorage, ataupun sqlite.
  • Access Token: Token yang dikirimkan dalam Bearer Authorization dengan bentuk `Authorization: Bearer ` yang dijadikan sebagai Header dari setiap request yang dikirim ke API endpoint.

Untuk mendapatkan Refresh Token adalah dengan menggunakan endpoint:

-- POST --
https://api.unira.ac.id/v1/token

dengan mengirimkan variabel POST: username dan password dimana untuk sementara username adalah NIS (Nomor Induk Staf) untuk pegawai dan dosen, dan NIM (Nomor Induk Mahasiswa) untuk mahasiswa Universitas Madura.

Jika pemeriksaan akun berhasil dilakukan maka API akan menghasilkan respon berupa JSON dengan properti refresh token dan access token. Refresh token harus disimpan oleh klien dan Access token harus diperbaharui setiap 10 menit dengan mengirimkan request:

-- PUT --
https://api.unira.ac.id/v1/token

dengan mengirimkan variabel PUT: refresh yang berisi nilai dari Refresh token. Menjadi tanggung jawab klien untuk memperbarui Access token bila masa aktifnya berakhir agar request berikutnya tidak ditolak oleh server.

Respon API

Berikut ini adalah beberapa respon yang mungkin saja diperoleh ketika melakukan request ke API endpoint:

  1. (200 OK). Respon untuk GET/PUT yang berhasil (bisa memiliki data maupun tidak)
  2. (201 Created). Respon untuk POST yang berhasil menyimpan resource
  3. (204 Deleted). Respon untuk DELETE yang berhasil menghapus resource
  4. (400 Bad Request). Respon untuk request yang tidak sesuai ketentuan
  5. (401 Unauthorized). Respon untuk authentifikasi yang gagal
  6. (404 Not Found). Respon untuk resource yang tidak dapat ditemukan
  7. (422 Unprocessable Entity). Respon GET/POST/PUT/DELETE untuk parameter yang dikirimkan tidak dapat diproses karena tidak lengkap ataupun tidak sesuai)

Artikel token, api, respon, kirim, request, resource, refresh, hasil, post, access, json, madura, klien, universitas, header