![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 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. Note: This example requires Chilkat v11.0.0 or greater. For more information, see https://developer.abnamro.com/get-started#headingFive
LOCAL lnSuccess LOCAL loRsa LOCAL loPrivkey LOCAL loPubkey LOCAL loJwt LOCAL loJsonHeader LOCAL loJsonPayload LOCAL lnCurDateTime LOCAL lcJwtStr lnSuccess = 0 * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * Create public/private key pair (RSA) loRsa = CreateObject('Chilkat.Rsa') * Generate a 2048-bit key. loPrivkey = CreateObject('Chilkat.PrivateKey') lnSuccess = loRsa.GenKey(2048,loPrivkey) IF (lnSuccess = 0) THEN ? loRsa.LastErrorText RELEASE loRsa RELEASE loPrivkey CANCEL ENDIF * Export the key to PEM files. * Write one PEM file for the private key, and one for the public key. lnSuccess = loPrivkey.SavePemFile("qa_data/pem/abnAmroPrivateKey.pem") loPubkey = CreateObject('Chilkat.PublicKey') loPrivkey.ToPublicKey(loPubkey) 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. loJwt = CreateObject('Chilkat.Jwt') * Create the header: * { * "typ": "JWT", * "alg": "RS256" * } 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" * } 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 = 0) THEN ? loJwt.LastErrorText RELEASE loRsa RELEASE loPrivkey RELEASE loPubkey RELEASE loJwt RELEASE loJsonHeader RELEASE loJsonPayload CANCEL ENDIF * Here is the JWT: ? lcJwtStr RELEASE loRsa RELEASE loPrivkey RELEASE loPubkey RELEASE loJwt RELEASE loJsonHeader RELEASE loJsonPayload |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.