AutoIt
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
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")