Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Perl) bitzlato.com whoamiDemonstrates sending a request to the bitzlato.com whoami endpoint using an ES256 JWT token for authentication.
use chilkat(); # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # Use the following ECC key loaded from JWK format. $jwk = chilkat::CkJsonObject->new(); $success = $jwk->UpdateString("kty","EC"); $success = $jwk->UpdateString("crv","P-256"); $success = $jwk->UpdateString("x","..."); $success = $jwk->UpdateString("y","..."); $success = $jwk->UpdateString("d","..."); $eccKey = chilkat::CkPrivateKey->new(); $success = $eccKey->LoadJwk($jwk->emit()); if ($success == 0) { print $eccKey->lastErrorText() . "\r\n"; exit; } $jwt = chilkat::CkJwt->new(); # Build the JOSE header $jose = chilkat::CkJsonObject->new(); $success = $jose->AppendString("format","compact"); $success = $jose->AppendString("alg","ES256"); # Now build the JWT claims (also known as the payload) # Our JWT claims will contain members as shown here: # { # "email":"your_email@example.com", # "aud":"usr", # "iat":"1588286154", # "jti":"555D9123" # } $claims = chilkat::CkJsonObject->new(); $claims->AppendString("jti","555D9123"); $claims->AppendString("email",'your_email@example.com'); # Set the timestamp of when the JWT was created to now minus 60 seconds $curDateTime = $jwt->GenNumericDate(-60); $success = $claims->AddIntAt(-1,"iat",$curDateTime); # Set the "not process before" timestamp to now minus 60 seconds $success = $claims->AddIntAt(-1,"nbf",$curDateTime); # Set the timestamp defining an expiration time (end time) for the token # to be now + 1 hour (3600 seconds) $success = $claims->AddIntAt(-1,"exp",$curDateTime + 3600); $claims->AppendString("aud","usr"); # Produce the smallest possible JWT: $jwt->put_AutoCompact(1); # Create the JWT token. This is where the RSA signature is created. $jwt_token = $jwt->createJwtPk($jose->emit(),$claims->emit(),$eccKey); print $jwt_token . "\r\n"; # Send the HTTPS GET with the jwt_token used for Authorization. $http = chilkat::CkHttp->new(); $http->put_AuthToken($jwt_token); $responseStr = $http->quickGetStr("https://bitzlato.com/api/auth/whoami"); if ($http->get_LastMethodSuccess() == 0) { print $http->lastErrorText() . "\r\n"; exit; } print "status code = " . $http->get_LastStatus() . "\r\n"; print $responseStr . "\r\n"; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.