From 7c5bf89e46204ecd6c0c7e50413ee8a30f24de11 Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Mon, 3 Feb 2025 12:39:52 +0700 Subject: [PATCH] add login method --- app/Controllers/Auths.php | 112 +++++++++++++++++++++--------------- public/tokens/pbmc_bali.txt | 0 public/tokens/pbmc_dps.txt | 1 + public/tokens/pbmc_sby.txt | 1 + 4 files changed, 69 insertions(+), 45 deletions(-) delete mode 100644 public/tokens/pbmc_bali.txt create mode 100644 public/tokens/pbmc_dps.txt diff --git a/app/Controllers/Auths.php b/app/Controllers/Auths.php index 98c75a5..b1fb5de 100644 --- a/app/Controllers/Auths.php +++ b/app/Controllers/Auths.php @@ -4,8 +4,10 @@ namespace App\Controllers; class Auths extends BaseController { public function login() { - //$TM_url = "https://api-transmedic1.transmedic.co.id/api/token/create"; - $TM_url = "http://rest.local/tests"; + $TM_url = "https://api-transmedic1.transmedic.co.id/api/token/create"; + //$TM_url = "http://cmod-rest.local/tests"; + $fileSBY = "tokens/pbmc_sby.txt"; + $fileDPS = "tokens/pbmc_dps.txt"; $secret = "o7lf5DUxSuPKtDjlbqc2VuZD9WjQ5qAZ"; @@ -13,65 +15,85 @@ class Auths extends BaseController { //$credDPS = [ "username"=>"pbmc_bali", "password"=>"J8e29XjLmDCFuQnk" ]; $header = [ - 'alg' => 'HS256', // HMAC SHA-256 algorithm - 'typ' => 'JWT' + 'typ' => 'JWT', + 'alg' => 'HS256' ]; - $payload = [ + $payloadSBY = [ 'iat' => time(), - 'username'=>"pbmc_surabaya", 'password'=>"pgcWfdwX3qEt9zaC" + 'data'=> [ + 'username'=>"pbmc_surabaya", + 'password'=>"pgcWfdwX3qEt9zaC" + ] + ]; + + $payloadDPS = [ + 'iat' => time(), + 'data'=> [ + 'username'=>"pbmc_bali", + 'password'=>"J8e29XjLmDCFuQnk" + ] ]; - /* function base64UrlEncode($data) { return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); } - $encodedHeader = base64UrlEncode(json_encode($header)); - $encodedPayload = base64UrlEncode(json_encode($payload)); + function createJWT($header, $payload, $secret) { + $encodedHeader = base64UrlEncode(json_encode($header)); + $encodedPayload = base64UrlEncode(json_encode($payload)); - // Create the signature - $signature = hash_hmac('sha256', "$encodedHeader.$encodedPayload", $secret, true); - $encodedSignature = base64UrlEncode($signature); - - // Combine to create the JWT - $jwt = "$encodedHeader.$encodedPayload.$encodedSignature"; + $signature = hash_hmac('sha256', "$encodedHeader.$encodedPayload", $secret, true); + $encodedSignature = base64UrlEncode($signature); + // Combine to create the JWT + $jwt = "$encodedHeader.$encodedPayload.$encodedSignature"; + return $jwt; + } - */ - $header = http_build_query($header); - $payload = http_build_query($payload); - $signature = hash_hmac('sha256', "$header.$payload", $secret, true); - $jwt = "$header.$payload.$signature
"; - echo "JWT: $jwt\n"; + 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); + } + } 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); - $client = \Config\Services::curlrequest(); - try { - $response = $client->request('GET', $TM_url, [ - "headers" => [ - "Accept" => "application/json", - "Authorization" => "Bearer $jwt", - "AppCode" => "2" - ], - "body" => '', - "verify" => false - ]); - - if ($response->getStatusCode() == 200) { - print_r($response); - } else { - print_r($response); - } - - } catch (\Exception $e) { - echo "Error: " . $e->getMessage(); - } } public function tests() { - echo "
";
-		print_r($this);
-		echo "
"; + // $token = "4469|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6ImFwaS10cmFuc21lZGljMS50cmFuc21lZGljLmNvLmlkIiwiaWF0IjoxNzM4NTU2MTkxLCJleHAiOjE3Mzg2NDI1OTEsInN1YiI6bnVsbCwianRpIjoiMzRlOTk0MzctMTNmZC00OGUzLTg1NzEtMDYwYmJlMTUxNjM1IiwiZGF0YSI6eyJ1c2VybmFtZSI6InBibWNfc3VyYWJheWEiLCJwYXNzd29yZCI6InBnY1dmZHdYM3FFdDl6YUMifX0.hSrs1fkdwi0d7IAsCRiD20QqeQsFUxGd_06NKcjxcWw"; + $filePath = 'tokens/pbmc_sby.txt'; + $fileContents = file_get_contents($filePath); + echo $fileContents; + } } \ No newline at end of file diff --git a/public/tokens/pbmc_bali.txt b/public/tokens/pbmc_bali.txt deleted file mode 100644 index e69de29..0000000 diff --git a/public/tokens/pbmc_dps.txt b/public/tokens/pbmc_dps.txt new file mode 100644 index 0000000..d42f1cb --- /dev/null +++ b/public/tokens/pbmc_dps.txt @@ -0,0 +1 @@ +4484|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6ImFwaS10cmFuc21lZGljMS50cmFuc21lZGljLmNvLmlkIiwiaWF0IjoxNzM4NTYxMTQwLCJleHAiOjE3Mzg2NDc1NDAsInN1YiI6bnVsbCwianRpIjoiN2Q3YTA3MzItMzg3Ny00ZmVjLThjOWYtMWVmYWZmODgwNmU4IiwiZGF0YSI6eyJ1c2VybmFtZSI6InBibWNfYmFsaSIsInBhc3N3b3JkIjoiSjhlMjlYakxtRENGdVFuayJ9fQ.HQAuZIBYDpYgPdO8U69m5O8n254DrularsnulFfVzTQ \ No newline at end of file diff --git a/public/tokens/pbmc_sby.txt b/public/tokens/pbmc_sby.txt index e69de29..6be74cf 100644 --- a/public/tokens/pbmc_sby.txt +++ b/public/tokens/pbmc_sby.txt @@ -0,0 +1 @@ +4483|eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOm51bGwsImF1ZCI6ImFwaS10cmFuc21lZGljMS50cmFuc21lZGljLmNvLmlkIiwiaWF0IjoxNzM4NTYxMTM5LCJleHAiOjE3Mzg2NDc1MzksInN1YiI6bnVsbCwianRpIjoiYTgxMWIzZjktNTRlNC00MzI0LWIyOGUtN2IwZmZjOTQ3YWY3IiwiZGF0YSI6eyJ1c2VybmFtZSI6InBibWNfc3VyYWJheWEiLCJwYXNzd29yZCI6InBnY1dmZHdYM3FFdDl6YUMifX0.M6dbVUv0SxFReWtFNUa2JHPt85Qaq2zO0es7B-YmNaM \ No newline at end of file