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
(DataFlex) 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
Use ChilkatAx-win32.pkg Procedure Test Handle hoRsa Boolean iSuccess Variant vPrivkey Handle hoPrivkey Variant vPubkey Handle hoPubkey Handle hoJwt Handle hoJsonHeader Handle hoJsonPayload Integer iCurDateTime String sJwtStr String sTemp1 String sTemp2 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Create public/private key pair (RSA) Get Create (RefClass(cComChilkatRsa)) To hoRsa If (Not(IsComObjectCreated(hoRsa))) Begin Send CreateComObject of hoRsa End // Generate a 2048-bit key. Get ComGenerateKey Of hoRsa 2048 To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoRsa To sTemp1 Showln sTemp1 Procedure_Return End // Export the key to PEM files. // Write one PEM file for the private key, and one for the public key. Get ComExportPrivateKeyObj Of hoRsa To vPrivkey If (IsComObject(vPrivkey)) Begin Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivkey Set pvComObject Of hoPrivkey To vPrivkey End Get ComSavePemFile Of hoPrivkey "qa_data/pem/abnAmroPrivateKey.pem" To iSuccess Get ComExportPublicKeyObj Of hoRsa To vPubkey If (IsComObject(vPubkey)) Begin Get Create (RefClass(cComChilkatPublicKey)) To hoPubkey Set pvComObject Of hoPubkey To vPubkey End Get ComSavePemFile Of hoPubkey True "qa_data/pem/abnAmroPublicKey.pem" To iSuccess // 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. Get Create (RefClass(cComChilkatJwt)) To hoJwt If (Not(IsComObjectCreated(hoJwt))) Begin Send CreateComObject of hoJwt End // Create the header: // { // "typ": "JWT", // "alg": "RS256" // } Get Create (RefClass(cComChilkatJsonObject)) To hoJsonHeader If (Not(IsComObjectCreated(hoJsonHeader))) Begin Send CreateComObject of hoJsonHeader End Get ComUpdateString Of hoJsonHeader "typ" "JWT" To iSuccess Get ComUpdateString Of hoJsonHeader "alg" "RS256" To iSuccess // Create the payload: // { // "nbf": 1499947668, // "exp": 1499948668, // "iss": "me", // "sub": "anApiKey", // "aud": "https://auth-sandbox.abnamro.com/oauth/token" // } Get Create (RefClass(cComChilkatJsonObject)) To hoJsonPayload If (Not(IsComObjectCreated(hoJsonPayload))) Begin Send CreateComObject of hoJsonPayload End Get ComGenNumericDate Of hoJwt 0 To iCurDateTime // Set the "not process before" timestamp to now. Get ComAddIntAt Of hoJsonPayload -1 "nbf" iCurDateTime To iSuccess // Set the timestamp defining an expiration time (end time) for the token // to be now + 1 hour (3600 seconds) Get ComAddIntAt Of hoJsonPayload -1 "exp" (iCurDateTime + 3600) To iSuccess Get ComUpdateString Of hoJsonPayload "iss" "me" To iSuccess Get ComUpdateString Of hoJsonPayload "sub" "anApiKey" To iSuccess Get ComUpdateString Of hoJsonPayload "aud" "https://auth-sandbox.abnamro.com/oauth/token" To iSuccess // Produce the smallest possible JWT: Set ComAutoCompact Of hoJwt To True Get ComEmit Of hoJsonHeader To sTemp1 Get ComEmit Of hoJsonPayload To sTemp2 Get ComCreateJwtPk Of hoJwt sTemp1 sTemp2 vPrivkey To sJwtStr Get ComLastMethodSuccess Of hoJwt To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoJwt To sTemp1 Showln sTemp1 Procedure_Return End Send Destroy of hoPrivkey Send Destroy of hoPubkey // Here is the JWT: Showln sJwtStr End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.