Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.0.0+

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 Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final integrationKey = 'DIMS3V5QDVG9J9ABRXC4';
  final secretKey = 'HWVQ46nubLBxhnRlKddTltWIi3hL0fIQF2qTvLab';

  final http = CkHttp();

  http.accept = 'application/json';

  // Use your own hostname here:
  final url = '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.
  http.login = integrationKey;
  http.password = secretKey;

  final req = CkHttpRequest();
  req.addParam('username', 'matt');
  req.addParam('factor', 'push');
  // The device ID can be obtained from the preauth response.  See Duo Preauth Example
  req.addParam('device', 'DP6GYVTQ5NK82BMR851F');

  req.httpVerb = 'POST';
  req.contentType = 'application/x-www-form-urlencoded';

  final resp = CkHttpResponse();
  try {
    http.httpReq(url, req, resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('status code = ${resp.statusCode}');

  final json = CkJsonObject();
  json.load(resp.bodyStr);
  json.emitCompact = false;
  print(json.emit());

  // 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

  final responseResult = json.stringOf('response.result');
  final responseStatus = json.stringOf('response.status');
  final responseStatusMsg = json.stringOf('response.status_msg');
  final stat = json.stringOf('stat');
}