|  | 
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
| (Classic ASP) Refresh Expiring OAuth2 Access Token for Azure Registered AppSee more OAuth2 ExamplesShows how to renew an Azure App's access token using the refresh token when it's near expiration.
 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% ' We previously obtained an access token and saved the JSON to a file using this example: ' Get OAuth2 Access Token for Azure Registered App ' This example will examine the JSON and expiration date, and if near expiration will ' refresh the access token. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.JsonObject") set json = Server.CreateObject("Chilkat.JsonObject") success = json.LoadFile("qa_data/tokens/_myAzureApp.json") If (success <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( "Failed to load the access token.") & "</pre>" Response.End End If ' The contents of the JSON look like this: ' { ' "token_type": "Bearer", ' "scope": "User.Read Mail.ReadWrite Mail.Send", ' "expires_in": 3600, ' "ext_expires_in": 0, ' "access_token": "EwBAA8l6B...", ' "refresh_token": "MCRMdbe6Cd...", ' "id_token": "eyJ0eXAiOiJ...", ' "expires_on": "1494112119" ' } ' The "expires_on" value is a Unix time. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.CkDateTime") set dtExpire = Server.CreateObject("Chilkat.CkDateTime") success = dtExpire.SetFromUnixTime(0,json.IntOf("expires_on")) ' If this date/time expires within 10 minutes of the current system time, refresh the token. If (dtExpire.ExpiresWithin(10,"minutes") <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( "No need to refresh, the access token won't expire within the next 10 minutes.") & "</pre>" Response.End End If ' OK, we need to refresh the access token.. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.OAuth2") set oauth2 = Server.CreateObject("Chilkat.OAuth2") ' Note: The endpoint depends on the Azure App Registration. ' See How to Choose the Correct Endpoints for your Azure App Registration oauth2.TokenEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/token" ' Use your client ID. oauth2.ClientId = "CLIENT_ID" ' Get the existing refresh token. oauth2.RefreshToken = json.StringOf("refresh_token") ' Send the HTTP POST to refresh the access token. success = oauth2.RefreshAccessToken() If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( oauth2.LastErrorText) & "</pre>" Response.End End If Response.Write "<pre>" & Server.HTMLEncode( "OAuth2 authorization granted!") & "</pre>" Response.Write "<pre>" & Server.HTMLEncode( "Access Token = " & oauth2.AccessToken) & "</pre>" ' Get the full JSON response: success = json.Load(oauth2.AccessTokenResponse) json.EmitCompact = 0 ' If an "expires_on" member does not exist, then add the JSON member by ' getting the current system date/time and adding the "expires_in" seconds. ' This way we'll know when the token expires. If (json.HasMember("expires_on") <> 1) Then success = dtExpire.SetFromCurrentSystemTime() success = dtExpire.AddSeconds(json.IntOf("expires_in")) success = json.AppendString("expires_on",dtExpire.GetAsUnixTimeStr(0)) End If Response.Write "<pre>" & Server.HTMLEncode( json.Emit()) & "</pre>" ' Save the new access token JSON to a file for future requests. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.FileAccess") set fac = Server.CreateObject("Chilkat.FileAccess") success = fac.WriteEntireTextFile("qa_data/tokens/_myAzureApp.json",json.Emit(),"utf-8",0) %> </body> </html> | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.