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
(AutoIt) ABN AMRO Create Signed JSON Web TokenDemonstrates how to create a signed JWT to be used for authenticating requests to the ABN AMRO REST API's. For more information, see https://developer.abnamro.com/get-started#headingFive
; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ; Create public/private key pair (RSA) $oRsa = ObjCreate("Chilkat.Rsa") ; Generate a 2048-bit key. Local $bSuccess = $oRsa.GenerateKey(2048) If ($bSuccess <> True) Then ConsoleWrite($oRsa.LastErrorText & @CRLF) Exit EndIf ; Export the key to PEM files. ; Write one PEM file for the private key, and one for the public key. Local $oPrivkey = $oRsa.ExportPrivateKeyObj() $bSuccess = $oPrivkey.SavePemFile("qa_data/pem/abnAmroPrivateKey.pem") Local $oPubkey = $oRsa.ExportPublicKeyObj() $bSuccess = $oPubkey.SavePemFile(True,"qa_data/pem/abnAmroPublicKey.pem") ; Note: Please share your public key along with your app name and developer email id at api.support@nl.abnamro.com. ; Token generation will not work unless public key is associated with your app. ; Create the JWT. $oJwt = ObjCreate("Chilkat.Jwt") ; Create the header: ; { ; "typ": "JWT", ; "alg": "RS256" ; } $oJsonHeader = ObjCreate("Chilkat.JsonObject") $oJsonHeader.UpdateString("typ","JWT") $oJsonHeader.UpdateString("alg","RS256") ; Create the payload: ; { ; "nbf": 1499947668, ; "exp": 1499948668, ; "iss": "me", ; "sub": "anApiKey", ; "aud": "https://auth-sandbox.abnamro.com/oauth/token" ; } $oJsonPayload = ObjCreate("Chilkat.JsonObject") Local $iCurDateTime = $oJwt.GenNumericDate(0) ; Set the "not process before" timestamp to now. $bSuccess = $oJsonPayload.AddIntAt(-1,"nbf",$iCurDateTime) ; Set the timestamp defining an expiration time (end time) for the token ; to be now + 1 hour (3600 seconds) $bSuccess = $oJsonPayload.AddIntAt(-1,"exp",$iCurDateTime + 3600) $oJsonPayload.UpdateString("iss","me") $oJsonPayload.UpdateString("sub","anApiKey") $oJsonPayload.UpdateString("aud","https://auth-sandbox.abnamro.com/oauth/token") ; Produce the smallest possible JWT: $oJwt.AutoCompact = True Local $sJwtStr = $oJwt.CreateJwtPk($oJsonHeader.Emit(),$oJsonPayload.Emit(),$oPrivkey) If ($oJwt.LastMethodSuccess <> True) Then ConsoleWrite($oJwt.LastErrorText & @CRLF) Exit EndIf ; Here is the JWT: ConsoleWrite($sJwtStr & @CRLF) |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.