Sample code for 30+ languages & platforms
AutoIt

Duo Auth API - Auth

See more Duo Auth MFA Examples

The /auth endpoint performs second-factor authentication for a user by sending a push notification to the user's smartphone app, verifying a passcode, or placing a phone call. It is also used to send the user a new batch of passcodes via SMS.

Chilkat AutoIt Downloads

AutoIt
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/auth"

; This example requires Chilkat v9.5.0.89 or greater because Chilkat will automatically
; generate and send the HMAC signature for the requires based on the integration key and secret key.
$oHttp.Login = $sIntegrationKey
$oHttp.Password = $secretKey

$oReq = ObjCreate("Chilkat.HttpRequest")
$oReq.AddParam "username","matt"
$oReq.AddParam "factor","push"
; The device ID can be obtained from the preauth response.  See Duo Preauth Example
$oReq.AddParam "device","DP6GYVTQ5NK82BMR851F"

$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": {
;     "result": "allow",
;     "status": "allow",
;     "status_msg": "Success. Logging you in..."
;   },
;   "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 $sResponseResult = $oJson.StringOf("response.result")
Local $sResponseStatus = $oJson.StringOf("response.status")
Local $sResponseStatus_msg = $oJson.StringOf("response.status_msg")
Local $stat = $oJson.StringOf("stat")