'JWT', 'alg' => 'HS256' ]; $payload = [ 'iat' => time(), 'data'=> [ 'username'=>"pbmc_bali", 'password'=>"J8e29XjLmDCFuQnk" ] ]; $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), '+/', '-_'), '='); } 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 = $this->base64UrlEncode($signature); // 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 . "
"; } } else { print_r($response); } } catch (\Exception $e) { echo "Error: " . $e->getMessage(); } } }