From b046d2a2893686b0bf34895112b73d5ed4248ecf Mon Sep 17 00:00:00 2001 From: mikael-zakaria Date: Tue, 25 Feb 2025 16:20:07 +0800 Subject: [PATCH] separate auth --- app/Config/Filters.php | 2 +- app/Config/Routes.php | 3 +- app/Controllers/API_Results.php | 12 ++- app/Controllers/Auths.php | 135 +++++++++++++++----------------- public/tokens/pbmc_dps.txt | 2 +- public/tokens/pbmc_sby.txt | 2 +- 6 files changed, 77 insertions(+), 79 deletions(-) diff --git a/app/Config/Filters.php b/app/Config/Filters.php index 3d0aef8..8472717 100644 --- a/app/Config/Filters.php +++ b/app/Config/Filters.php @@ -57,7 +57,7 @@ class Filters extends BaseFilters 'after' => [ 'pagecache', // Web Page Caching 'performance', // Performance Metrics - //'toolbar', // Debug Toolbar + 'toolbar', // Debug Toolbar ], ]; diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 73e8d1a..2b98e58 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -6,7 +6,8 @@ use CodeIgniter\Router\RouteCollection; * @var RouteCollection $routes */ $routes->get('/', 'Pages::home'); -$routes->get('/login', 'Auths::login'); +$routes->get('/loginsby', 'Auths::loginSBY'); +$routes->get('/logindps', 'Auths::loginDPS'); //$routes->get('/tests', 'Auths::tests'); $routes->post('/api/requests/', 'API_Requests::requests'); $routes->get('/api/requests/orm/(:any)', 'API_Requests::orm/$1'); diff --git a/app/Controllers/API_Results.php b/app/Controllers/API_Results.php index 90e57ac..1309f05 100644 --- a/app/Controllers/API_Results.php +++ b/app/Controllers/API_Results.php @@ -172,7 +172,8 @@ WHERE tu.SP_ACCESSNUMBER = '$accessnumber';"; public function results_send($accessnumber) { //$TM_url = "https://api-transmedic1.transmedic.co.id/api/webhook/lis"; - $TM_url = "http://10.10.4.123:8001/api/webhook/lis"; + $TMSby_url = "http://10.10.4.123:8001/api/webhook/lis"; + $TMBali_url = "http://10.10.12.90:8001/api/webhook/lis"; $TMBali_bearerToken = file_get_contents('tokens/pbmc_dps.txt'); $TMSby_bearerToken = file_get_contents('tokens/pbmc_sby.txt'); @@ -180,8 +181,13 @@ WHERE tu.SP_ACCESSNUMBER = '$accessnumber';"; $json = $this->create_json($accessnumber); $location = $json['branch']; - if($location == 'PBMC Surabaya') { $token = $TMSby_bearerToken; } - else { $token = $TMBali_bearerToken; } + if($location == 'PBMC Surabaya') { + $token = $TMSby_bearerToken; + $TM_url = $TMSby_url; + } else { + $token = $TMBali_bearerToken; + $TM_url = $TMBali_url; + } try { $response = $client->request('POST', $TM_url, [ diff --git a/app/Controllers/Auths.php b/app/Controllers/Auths.php index 4f2b5af..702c6a2 100644 --- a/app/Controllers/Auths.php +++ b/app/Controllers/Auths.php @@ -2,91 +2,82 @@ namespace App\Controllers; class Auths extends BaseController { - - public function login() { - //$TM_url = "https://api-transmedic1.transmedic.co.id/api/token/create"; - $TM_url = "http://10.10.4.123:8001/api/token/create"; - //$TM_url = "http://cmod-rest.local/tests"; - $fileSBY = "tokens/pbmc_sby.txt"; - $fileDPS = "tokens/pbmc_dps.txt"; - + + public function loginDPS() { + $file = "tokens/pbmc_dps.txt"; + //$TM_url = "https://staging-eklinik.pbmcgroup.com/api/token/create"; + $TM_url = "http://10.10.12.90:8001/api/token/create"; $secret = "o7lf5DUxSuPKtDjlbqc2VuZD9WjQ5qAZ"; - - //$credSBY = [ "username"=>"pbmc_surabaya", "password"=>"pgcWfdwX3qEt9zaC" ]; - //$credDPS = [ "username"=>"pbmc_bali", "password"=>"J8e29XjLmDCFuQnk" ]; - - $header = [ - 'typ' => 'JWT', - 'alg' => 'HS256' - ]; - - $payloadSBY = [ - 'iat' => time(), - 'data'=> [ - 'username'=>"pbmc_surabaya", - 'password'=>"pgcWfdwX3qEt9zaC" - ] - ]; - - $payloadDPS = [ + $header = [ 'typ' => 'JWT', 'alg' => 'HS256' ]; + $payload = [ 'iat' => time(), 'data'=> [ 'username'=>"pbmc_bali", 'password'=>"J8e29XjLmDCFuQnk" ] ]; - - function base64UrlEncode($data) { - return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); - } + $jwt = $this->createJWT($header, $payload, $secret); + $this->token2file($TM_url, $jwt, $file); + } + + public function loginSBY() { + $TM_url = "http://10.10.4.123:8001/api/token/create"; + $file = "tokens/pbmc_sby.txt"; + $secret = "o7lf5DUxSuPKtDjlbqc2VuZD9WjQ5qAZ"; + $header = [ 'typ' => 'JWT', 'alg' => 'HS256' ]; + $payload = [ + 'iat' => time(), + 'data'=> [ + 'username'=>"pbmc_surabaya", + 'password'=>"pgcWfdwX3qEt9zaC" + ] + ]; + $jwt = $this->createJWT($header, $payload, $secret); + $this->token2file($TM_url, $jwt, $file); + } + + private function base64UrlEncode($data) { + return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); + } - function createJWT($header, $payload, $secret) { - $encodedHeader = base64UrlEncode(json_encode($header)); - $encodedPayload = base64UrlEncode(json_encode($payload)); + private function createJWT($header, $payload, $secret) { + $encodedHeader = $this->base64UrlEncode(json_encode($header)); + $encodedPayload = $this->base64UrlEncode(json_encode($payload)); - $signature = hash_hmac('sha256', "$encodedHeader.$encodedPayload", $secret, true); - $encodedSignature = base64UrlEncode($signature); + $signature = hash_hmac('sha256', "$encodedHeader.$encodedPayload", $secret, true); + $encodedSignature = $this->base64UrlEncode($signature); - // Combine to create the JWT - $jwt = "$encodedHeader.$encodedPayload.$encodedSignature"; - return $jwt; - } - - function token2file($TM_url, $jwt, $file ) { - $client = \Config\Services::curlrequest(); - try { - $response = $client->request('GET', $TM_url, [ - "headers" => [ - "AppCode" => "2", - "Accept" => "application/json", - "Authorization" => "Bearer $jwt" - ], - "body" => '', - "verify" => false - ]); - - if ($response->getStatusCode() == 200) { - $body = $response->getBody(); - $data = json_decode($body, true); - $token = $data['data']['token']; - if (file_put_contents($file, $token) !== false) { - echo "Response saved to: " . $file . "
"; - } - } else { - print_r($response); + // Combine to create the JWT + $jwt = "$encodedHeader.$encodedPayload.$encodedSignature"; + return $jwt; + } + + private function token2file($TM_url, $jwt, $file ) { + $client = \Config\Services::curlrequest(); + try { + $response = $client->request('GET', $TM_url, [ + "headers" => [ + "AppCode" => "2", + "Accept" => "application/json", + "Authorization" => "Bearer $jwt" + ], + "body" => '', + "verify" => false + ]); + + if ($response->getStatusCode() == 200) { + $body = $response->getBody(); + $data = json_decode($body, true); + $token = $data['data']['token']; + if (file_put_contents($file, $token) !== false) { + echo "Response saved to: " . $file . "
"; } - } catch (\Exception $e) { - echo "Error: " . $e->getMessage(); + } else { + print_r($response); } + } catch (\Exception $e) { + echo "Error: " . $e->getMessage(); } - - - $jwtSBY = createJWT($header, $payloadSBY, $secret); - $jwtDPS = createJWT($header, $payloadDPS, $secret); - - token2file($TM_url, $jwtSBY, $fileSBY); - token2file($TM_url, $jwtDPS, $fileDPS); - } } \ No newline at end of file diff --git a/public/tokens/pbmc_dps.txt b/public/tokens/pbmc_dps.txt index ef76036..5e84ac3 100644 --- a/public/tokens/pbmc_dps.txt +++ b/public/tokens/pbmc_dps.txt @@ -1 +1 @@ -3638|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6IjEwLjEwLjEyLjkwOjgwMDEiLCJpYXQiOjE3Mzg3Nzc0OTEsImV4cCI6MTczODg2Mzg5MSwic3ViIjpudWxsLCJqdGkiOiJlZGUzNzI1NS0yNzE0LTRkNWQtYjlkMS1kZDJlN2NjMjQwZDUiLCJkYXRhIjp7InVzZXJuYW1lIjoicGJtY19iYWxpIiwicGFzc3dvcmQiOiJKOGUyOVhqTG1EQ0Z1UW5rIn19.yLiEfVfdvERzFGBNO2ySpI2kpQowtvdbcbQyR_Q9aa4 \ No newline at end of file +3919|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6IjEwLjEwLjEyLjkwOjgwMDEiLCJpYXQiOjE3Mzk1OTIzNTksImV4cCI6MTczOTY3ODc1OSwic3ViIjpudWxsLCJqdGkiOiI1Yzk0Zjk0MC1jY2M4LTQ5NTQtOGZkMy1jNTNmMmQ4ZTdmMjUiLCJkYXRhIjp7InVzZXJuYW1lIjoicGJtY19iYWxpIiwicGFzc3dvcmQiOiJKOGUyOVhqTG1EQ0Z1UW5rIn19.mbB5IAF66F5kx5Of1JMFc-ZyTS5l9wmOPtXy3rlDbc8 \ No newline at end of file diff --git a/public/tokens/pbmc_sby.txt b/public/tokens/pbmc_sby.txt index e426556..adeb3ec 100644 --- a/public/tokens/pbmc_sby.txt +++ b/public/tokens/pbmc_sby.txt @@ -1 +1 @@ -3882|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6ImludGVncmF0aW9uLmVrbGluaWsucGJtY2dyb3VwLmNvbSIsImlhdCI6MTczODg5MTQ0MiwiZXhwIjoxNzM4OTc3ODQyLCJzdWIiOm51bGwsImp0aSI6IjY2Zjk3ZTE4LTMwYmYtNDMxNC1iODU1LTllYjBlMmZlZWM4MCIsImRhdGEiOnsidXNlcm5hbWUiOiJwYm1jX3N1cmFiYXlhIiwicGFzc3dvcmQiOiJwZ2NXZmR3WDNxRXQ5emFDIn19.rOWSOg_TQ4x0uWsH3fA-inoN_ysq9zUm7-MOF2L58dI \ No newline at end of file +4124|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6IjEwLjEwLjQuMTIzOjgwMDEiLCJpYXQiOjE3Mzk1NzQ2OTEsImV4cCI6MTczOTY2MTA5MSwic3ViIjpudWxsLCJqdGkiOiIwZjgwMTJhOC1jNDkxLTRlZmMtYTQ2Yy01NjFkNWQwMTVhMjkiLCJkYXRhIjp7InVzZXJuYW1lIjoicGJtY19zdXJhYmF5YSIsInBhc3N3b3JkIjoicGdjV2Zkd1gzcUV0OXphQyJ9fQ.fE0jduyE7DCeI0AYe8-35LBH2k1oTh19M-r0g-JxjnM \ No newline at end of file