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) Decode Microsoft Graph ID TokenDemonstrates how to decode a Microsoft Graph ID token.
Use ChilkatAx-win32.pkg Procedure Test Handle hoJsonToken Boolean iSuccess Handle hoJwt String sIdToken String sJose Handle hoJsonHeader String sClaims Handle hoJsonClaims String sVer String sIss String sS_sub String sAud Integer iExp Integer iIat Integer iNbf String sName String sPreferred_username String sOid String sTid String sAio String sTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // In a previous example, we obtained a Microsoft Graph OAuth2 access token. // This example loads the JSON saved from the previous example and decodes the id_token. // Our Microsoft Graph OAuth2 token looks like this: // { // "token_type": "Bearer", // "scope": "openid profile User.ReadWrite Mail.ReadWrite Mail.Send Files.ReadWrite User.Read Calendars.ReadWrite Group.ReadWrite.All", // "expires_in": 3600, // "ext_expires_in": 3600, // "access_token": "EwCQA8l6...0HhMKYwC", // "refresh_token": "MCWulIvzi2yD0S...igEFn51mqcByhZtAJg", // "id_token": "eyJ0eXAiOiJKV1...Q7lRDaR-7A", // "expires_on": "1562862714" // } Get Create (RefClass(cComChilkatJsonObject)) To hoJsonToken If (Not(IsComObjectCreated(hoJsonToken))) Begin Send CreateComObject of hoJsonToken End Get ComLoadFile Of hoJsonToken "qa_data/tokens/microsoftGraph.json" To iSuccess If (iSuccess = False) Begin Showln "Failed to load the JSON file..." Procedure_Return End // Use Chilkat's JWT API to examine the id_token.. Get Create (RefClass(cComChilkatJwt)) To hoJwt If (Not(IsComObjectCreated(hoJwt))) Begin Send CreateComObject of hoJwt End Get ComStringOf Of hoJsonToken "id_token" To sIdToken // Extract the JOSE header.. Get ComGetHeader Of hoJwt sIdToken To sJose Get Create (RefClass(cComChilkatJsonObject)) To hoJsonHeader If (Not(IsComObjectCreated(hoJsonHeader))) Begin Send CreateComObject of hoJsonHeader End Get ComLoad Of hoJsonHeader sJose To iSuccess Set ComEmitCompact Of hoJsonHeader To False Get ComEmit Of hoJsonHeader To sTemp1 Showln sTemp1 // The JOSE header looks like this: // { // "typ": "JWT", // "alg": "RS256", // "kid": "1LTMzakihiRla_8z2BEJVXeWMqo" // } Get ComGetPayload Of hoJwt sIdToken To sClaims Get Create (RefClass(cComChilkatJsonObject)) To hoJsonClaims If (Not(IsComObjectCreated(hoJsonClaims))) Begin Send CreateComObject of hoJsonClaims End Get ComLoad Of hoJsonClaims sClaims To iSuccess Set ComEmitCompact Of hoJsonClaims To False Get ComEmit Of hoJsonClaims To sTemp1 Showln sTemp1 // The claims look like this: // { // "ver": "2.0", // "iss": "https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0", // "sub": "AAAAAAAAAAAAAAAAAAAAAHJFryd6Gydo-XtTd1nhUNQ", // "aud": "18c456bd-db75-43fe-9724-9e5d821c68ff", // "exp": 1562945513, // "iat": 1562858813, // "nbf": 1562858813, // "name": "Matt Chilkat", // "preferred_username": "matt@example.com", // "oid": "00000000-0000-0000-3a33-fceb9b74cc15", // "tid": "9188040d-6c67-4c5b-b112-36a304b66dad", // "aio": "DfibJqKnWC1c0FS6G ... W6pvTrQuYzyq16ghY$" // } // // Use this online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON // Get each of the claims.. Get ComStringOf Of hoJsonClaims "ver" To sVer Get ComStringOf Of hoJsonClaims "iss" To sIss Get ComStringOf Of hoJsonClaims "sub" To sS_sub Get ComStringOf Of hoJsonClaims "aud" To sAud Get ComIntOf Of hoJsonClaims "exp" To iExp Get ComIntOf Of hoJsonClaims "iat" To iIat Get ComIntOf Of hoJsonClaims "nbf" To iNbf Get ComStringOf Of hoJsonClaims "name" To sName Get ComStringOf Of hoJsonClaims "preferred_username" To sPreferred_username Get ComStringOf Of hoJsonClaims "oid" To sOid Get ComStringOf Of hoJsonClaims "tid" To sTid Get ComStringOf Of hoJsonClaims "aio" To sAio End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.