AutoIt
AutoIt
Duo Auth API - Preauth
See more Duo Auth MFA Examples
The /preauth endpoint determines whether a user is authorized to log in, and (if so) returns the user's available authentication factors.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
Local $sIntegrationKey = "DIMS3V5QDVG9J9ABRXC4"
Local $secretKey = "HWVQ46nubLBxhnRlKddTltWIi3hL0fIQF2qTvLab"
$oHttp = ObjCreate("Chilkat.Http")
$oHttp.Accept = "application/json"
; Use your own hostname here:
Local $sUrl = "https://api-a03782e1.duosecurity.com/auth/v2/preauth"
$oHttp.Login = $sIntegrationKey
$oHttp.Password = $secretKey
$oReq = ObjCreate("Chilkat.HttpRequest")
$oReq.AddParam "username","matt"
$oReq.HttpVerb = "POST"
$oReq.ContentType = "application/x-www-form-urlencoded"
$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpReq($sUrl,$oReq,$oResp)
If ($bSuccess = False) Then
ConsoleWrite($oHttp.LastErrorText & @CRLF)
Exit
EndIf
ConsoleWrite("status code = " & $oResp.StatusCode & @CRLF)
$oJson = ObjCreate("Chilkat.JsonObject")
$bSuccess = $oJson.Load($oResp.BodyStr)
$oJson.EmitCompact = False
ConsoleWrite($oJson.Emit() & @CRLF)
; Sample successful output:
; status code = 200
; {
; "response": {
; "devices": [
; {
; "capabilities": [
; "auto",
; "push",
; "sms",
; "mobile_otp"
; ],
; "device": "DP6GYVTQ5NK82BMR851F",
; "display_name": "iOS (XXX-XXX-1871)",
; "name": "",
; "number": "XXX-XXX-1871",
; "type": "phone"
; }
; ],
; "result": "auth",
; "status_msg": "Account is active"
; },
; "stat": "OK"
; }
; Sample code to parse the above JSON response..
; Use this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
Local $sDevice
Local $sDisplay_name
Local $sName
Local $sNumber
Local $sV_type
Local $iJ
Local $iCount_j
Local $strVal
Local $sResponseResult = $oJson.StringOf("response.result")
Local $sResponseStatus_msg = $oJson.StringOf("response.status_msg")
Local $stat = $oJson.StringOf("stat")
Local $i = 0
Local $iCount_i = $oJson.SizeOfArray("response.devices")
While $i < $iCount_i
$oJson.I = $i
$sDevice = $oJson.StringOf("response.devices[i].device")
$sDisplay_name = $oJson.StringOf("response.devices[i].display_name")
$sName = $oJson.StringOf("response.devices[i].name")
$sNumber = $oJson.StringOf("response.devices[i].number")
$sV_type = $oJson.StringOf("response.devices[i].type")
$iJ = 0
$iCount_j = $oJson.SizeOfArray("response.devices[i].capabilities")
While $iJ < $iCount_j
$oJson.J = $iJ
$strVal = $oJson.StringOf("response.devices[i].capabilities[j]")
$iJ = $iJ + 1
Wend
$i = $i + 1
Wend