Dokumentasi API

Dokumentasi API untuk developer

Modul Koneksi

Siapkan satu file modul koneksi API, modul ini akan berfungsi sebagai koneksi antar aplikasi dan server API. Berikut contoh pembuatan modul koneksi:


  1. URL : Alamat server API.
  2. Key : Sebagai identitas aplikasi untuk komunikasi data ke server API (SSO Server).
  3. Secret : Kunci rahasia identitas aplikasi.


class APIAuth{
	public function Exec ($params) {
				
            $url 				='https://akun.anakjuragan.com'.$params['path'];
            $params['app']		='aplikasi';
            $params['secret']	='xsasasasdasa';
            
            $fieldsString = http_build_query($params);

            $ch = curl_init();

            if($method == 'POST')
            {
                curl_setopt($ch,CURLOPT_POST, count($params));
                curl_setopt($ch,CURLOPT_POSTFIELDS, $fieldsString);
            }
            else
            {
                $url .= '?'.$fieldsString;
            }
            
            //return $url;
            
            curl_setopt($ch, CURLOPT_URL,$url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
            curl_setopt($ch, CURLOPT_HEADER , false);  // we want headers
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

            $result = curl_exec ($ch);

            $return['response'] = json_decode($result,true);

            if($return['response'] == false)
                $return['response'] = $result;

            $return['status'] = curl_getinfo($ch, CURLINFO_HTTP_CODE);

            curl_close ($ch);

            return $return;
    }
}
					

Otentikasi dengan API

Otentikasi dengan API memungkinkan pengembang untuk membuat tampilan form login sesuai dengan kebutuhan. Mungkin metode ini lebih cocok digunakan pada aplikasi Desktop atau Mobile Apps. Untuk pengembang aplikasi berbasis web disarankan menggunakan otentikasi SSO. Namun tidak menutup kemungkinan untuk pengembang aplikasi bebasis web menggunakan model otentikasi dengan API, disesuaikan dengan kebutuhan.

Untuk proses otentikasi dengan API, ada 3 variabel yang harus dikirim ke server otentikasi:


  1. Path : Lokasi modul.
  2. Username : Sebagai identitas pengguna untuk mengakses aplikasi.
  3. Password : Kunci rahasia pengguna.


$APIAuth=new APIAuth();
$respon=$APIAuth->Exec(array(
	'path'=>"/api/auth",
	'username'=>"username321",
	'password'=>"pasword123",
));
					

Respon


{"response":{
	"respon":{
		"pesan":"sukses",
		"text_msg":"OK",
		"token":"32a008411054b260d95485d816b47d64",
		"username":"username321"
		}
	},
"status":200}
				

Lihat contoh otentikasi dengan API contoh

Otentikasi dengan SSO

Otentikasi dengan SSO sangat cocok untuk pengembang aplikasi berbasis web dan mudah diterapkan. Pengembang aplikasi tidak direpotkan untuk membuat form login, namun cukup membuat satu tombol/link yang mengarah ke halaman SSO.

Ada 2 variabel yang harus dikirim ke server otentikasi:


  1. Path : Lokasi modul.
  2. Redirect_to : Halaman pengalihan setelah otentikasi SSO berhasil di https://akun.anakjuragan.com.
  3. Forward_to : adalah halaman pengalihan setelah login sukses,di situs client SSO


$APIAuth=new APIAuth();
$respon=$APIAuth->Exec(array(
	'path'=>"/api/sso",
	'redirect_to'=>"https://apps.anakjuragan.com/sso",
	'forward_to'=>$currentUrl,
));
					

Respon


{"response":{
"respon":{
	"SSOUrl":"https:\/\/akun.anakjuragan.com\/sso?token=b3c7210a7a052edba743f5ddb9b18&redirect_to=https:\/\/apps.anakjuragan.com\/sso&forward_to=https:\/\/wedding.anakjuragan.com\/id\/myaffiliasi"
		}
	},"status":200
}
				

Lihat contoh tombol otentikasi dengan SSO contoh

Otentikasi Cek Token

Otentikasi dengan API atau Otentikasi dengan SSO akan memberikan respon token sebagai sesi pengguna untuk selanjutkan digunakan sebagai identitas otentik pengguna dalam menggunakan aplikasi/akses data. Token ini memilik masa berlaku, sehingga diperkukan pengecekan/validasi token untuk memeriksa masa berlaku token.

Untuk proses cek token, ada 2 variabel yang harus dikirim ke server otentikasi:


  1. Path : Lokasi modul.
  2. Token : Token/sesi login pengguna.
  3. Username : Sebagai identitas pengguna untuk mengakses aplikasi.


$APIAuth=new APIAuth();
$respon=$APIAuth->Exec(array(
	'path'=>"/api/tcek",
	'token'=>"token9832131828319283921",
	'username'=>"username321",
));
					

Respon


{"response":{
	"respon":{
		"pesan":"sukses",
		"text_msg":"OK",
		"info":{
			"username":"username321",
			"token":"token9832131828319283921",
			"ip":"",
			"platform":"",
			"time":"2020-03-24 22:04:35"
		}
	}
},
"status":200}
				

Otentikasi Set Cookie

Otentikasi dengan API atau Otentikasi dengan SSO akan memberikan respon token sebagai sesi pengguna untuk selanjutkan digunakan sebagai identitas otentik pengguna dalam menggunakan aplikasi/akses data. Token ini perlu disimpan dalam bentuk cookie/session yang selanjutnya bisa digunakan pada setiap modul sebagai identitas user dalam mengakses data.

Script ini dibuat pada alamat redirect_to, jadi nama file harus disesuaikan dengan value parameter redirect_to (khusus pengguna SSO).

Untuk proses set cookie/session, ada 3 variabel yang harus dikirim ke server otentikasi:


  1. Path : Lokasi modul.
  2. Token : Token/sesi login pengguna.
  3. Username : Sebagai identitas pengguna untuk mengakses aplikasi.



$APIAuth=new APIAuth();
$respon=$APIAuth->Exec(array(
	'path'=>"/api/tcek",
	'token'=>$_GET['token'],
	'username'=>$_GET['username'],
));

if($respon['response']['respon']['pesan']=='sukses'){
	$forward_to=$_GET['forward_to'] ? : '/id/dash';
	setcookie("token", $_GET['token'], time()+864000);  /* expire in 1 day */
	setcookie("username", $_GET['username'], time()+864000);  /* expire in 1 day */
	header('Location:'.$forward_to);
}else{
	//invalid token
}


					

Respon


{"response":{
	"respon":{
		"pesan":"sukses",
		"text_msg":"OK",
		"info":{
			"username":"username321",
			"token":"token9832131828319283921",
			"ip":"",
			"platform":"",
			"time":"2020-03-24 22:04:35"
		}
	}
},
"status":200}