Lianja
Lianja
AzureWebsites OAuth2 Password Flow
See more OAuth2 Examples
Demonstrates how to do OAuth 2.0 password flow for azurewebsites.net.Chilkat Lianja Downloads
llSuccess = .F.
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loHttp = createobject("CkHttp")
loReq = createobject("CkHttpRequest")
loReq.HttpVerb = "POST"
loReq.Path = "/token"
loReq.ContentType = "application/x-www-form-urlencoded"
loReq.AddParam("grant_type","password")
loReq.AddParam("username","your_username")
loReq.AddParam("password","your_password")
lcTokenEndpoint = "https://your_api.azurewebsites.net/token"
loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpReq(lcTokenEndpoint,loReq,loResp)
if (llSuccess = .F.) then
? loHttp.LastErrorText
release loHttp
release loReq
release loResp
return
endif
loSbResponseBody = createobject("CkStringBuilder")
loResp.GetBodySb(loSbResponseBody)
loJResp = createobject("CkJsonObject")
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = .F.
? "Response Body:"
? loJResp.Emit()
// Sample JSON response:
// {
// "access_token": "NQGHn ... xTS",
// "token_type": "bearer",
// "expires_in": 1209599,
// "userName": "your_username",
// ".issued": "Mon, 27 Apr 2020 23:49:35 GMT",
// ".expires": "Mon, 11 May 2020 23:49:35 GMT"
// }
lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + str(lnRespStatusCode)
if (lnRespStatusCode >= 400) then
? "Response Header:"
? loResp.Header
? "Failed."
release loHttp
release loReq
release loResp
release loSbResponseBody
release loJResp
return
endif
// ----------------------------------
// Use the OAuth2 token in a request.
// For example...
loSbXml = createobject("CkStringBuilder")
llSuccess = loSbXml.LoadFile("c:/someDir/someXmlFile.xml","utf-8")
if (llSuccess = .F.) then
? "Failed to load the XML file."
release loHttp
release loReq
release loResp
release loSbResponseBody
release loJResp
release loSbXml
return
endif
// Get the OAuth2 token and use it for authentication
loHttp.AuthToken = loJResp.StringOf("token")
lcDestUrl = "https://your_api.azurewebsites.net/destinationUrl"
llSuccess = loHttp.HttpSb("POST",lcDestUrl,loSbXml,"utf-8","application/xml",loResp)
if (llSuccess = .F.) then
? loHttp.LastErrorText
release loHttp
release loReq
release loResp
release loSbResponseBody
release loJResp
release loSbXml
return
endif
lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + str(lnRespStatusCode)
if (lnRespStatusCode >= 400) then
? "Response Header:"
? loResp.Header
? "Failed."
release loHttp
release loReq
release loResp
release loSbResponseBody
release loJResp
release loSbXml
return
endif
// Examine the response body
? loResp.BodyStr
release loHttp
release loReq
release loResp
release loSbResponseBody
release loJResp
release loSbXml