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
(Visual FoxPro) 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
LOCAL loRsa LOCAL lnSuccess LOCAL loPrivkey LOCAL loPubkey LOCAL loJwt LOCAL loJsonHeader LOCAL loJsonPayload LOCAL lnCurDateTime LOCAL lcJwtStr * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * Create public/private key pair (RSA) * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Rsa') loRsa = CreateObject('Chilkat.Rsa') * Generate a 2048-bit key. lnSuccess = loRsa.GenerateKey(2048) IF (lnSuccess <> 1) THEN ? loRsa.LastErrorText RELEASE loRsa CANCEL ENDIF * Export the key to PEM files. * Write one PEM file for the private key, and one for the public key. loPrivkey = loRsa.ExportPrivateKeyObj() lnSuccess = loPrivkey.SavePemFile("qa_data/pem/abnAmroPrivateKey.pem") loPubkey = loRsa.ExportPublicKeyObj() lnSuccess = loPubkey.SavePemFile(1,"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. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Jwt') loJwt = CreateObject('Chilkat.Jwt') * Create the header: * { * "typ": "JWT", * "alg": "RS256" * } * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJsonHeader = CreateObject('Chilkat.JsonObject') loJsonHeader.UpdateString("typ","JWT") loJsonHeader.UpdateString("alg","RS256") * Create the payload: * { * "nbf": 1499947668, * "exp": 1499948668, * "iss": "me", * "sub": "anApiKey", * "aud": "https://auth-sandbox.abnamro.com/oauth/token" * } * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJsonPayload = CreateObject('Chilkat.JsonObject') lnCurDateTime = loJwt.GenNumericDate(0) * Set the "not process before" timestamp to now. lnSuccess = loJsonPayload.AddIntAt(-1,"nbf",lnCurDateTime) * Set the timestamp defining an expiration time (end time) for the token * to be now + 1 hour (3600 seconds) lnSuccess = loJsonPayload.AddIntAt(-1,"exp",lnCurDateTime + 3600) loJsonPayload.UpdateString("iss","me") loJsonPayload.UpdateString("sub","anApiKey") loJsonPayload.UpdateString("aud","https://auth-sandbox.abnamro.com/oauth/token") * Produce the smallest possible JWT: loJwt.AutoCompact = 1 lcJwtStr = loJwt.CreateJwtPk(loJsonHeader.Emit(),loJsonPayload.Emit(),loPrivkey) IF (loJwt.LastMethodSuccess <> 1) THEN ? loJwt.LastErrorText RELEASE loRsa RELEASE loJwt RELEASE loJsonHeader RELEASE loJsonPayload CANCEL ENDIF RELEASE loPrivkey RELEASE loPubkey * Here is the JWT: ? lcJwtStr RELEASE loRsa RELEASE loJwt RELEASE loJsonHeader RELEASE loJsonPayload |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.