Chilkat2-Python
Chilkat2-Python
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 Chilkat2-Python Downloads
import sys
import chilkat2
success = False
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
integrationKey = "DIMS3V5QDVG9J9ABRXC4"
secretKey = "HWVQ46nubLBxhnRlKddTltWIi3hL0fIQF2qTvLab"
http = chilkat2.Http()
http.Accept = "application/json"
# Use your own hostname here:
url = "https://api-a03782e1.duosecurity.com/auth/v2/preauth"
http.Login = integrationKey
http.Password = secretKey
req = chilkat2.HttpRequest()
req.AddParam("username","matt")
req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"
resp = chilkat2.HttpResponse()
success = http.HttpReq(url,req,resp)
if (success == False):
print(http.LastErrorText)
sys.exit()
print("status code = " + str(resp.StatusCode))
json = chilkat2.JsonObject()
success = json.Load(resp.BodyStr)
json.EmitCompact = False
print(json.Emit())
# 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
responseResult = json.StringOf("response.result")
responseStatus_msg = json.StringOf("response.status_msg")
stat = json.StringOf("stat")
i = 0
count_i = json.SizeOfArray("response.devices")
while i < count_i :
json.I = i
device = json.StringOf("response.devices[i].device")
display_name = json.StringOf("response.devices[i].display_name")
name = json.StringOf("response.devices[i].name")
number = json.StringOf("response.devices[i].number")
v_type = json.StringOf("response.devices[i].type")
j = 0
count_j = json.SizeOfArray("response.devices[i].capabilities")
while j < count_j :
json.J = j
strVal = json.StringOf("response.devices[i].capabilities[j]")
j = j + 1
i = i + 1