Two Factor Settings

Get User's Two-Factor Settings

curl "https://example.ziik.io/api/two-factor"
  -H "Authorization: Bearer aaaaaaaaaa.bbbbbbbbbbb.cccccccccccc"

The above command returns JSON structured like this:

{
  "data": {
    "method": "google",
    "secret_key": "1234567890",
    "phone_prefix": null,
    "phone": null,
    "verified": false
  }
}

Get the current user's two-factor authentication settings

HTTP Request

GET https://example.ziik.io/api/two-factor

Update Two-Factor Settings

curl -i -X PATCH "https://example.ziik.io/api/two-factor"
  -H "Authorization: Bearer aaaaaaaaa.bbbbbbbbb.cccccccccc"
  -d "{ [...] }"

The above command returns 204 No Content on successful update.

HTTP/1.0 204 No Content

This endpoint replaces the current user's two-factor settings with the provided values.

HTTP Request

PATCH https://example.ziik.io/api/two-factor

Request Parameters

ParameterTypeRequiredDescription
methodStringYesAuthentication method. Can be 'google', 'sms' - or empty, in which case two-factor is disabled for the current user
secret_keyStringIf using 'google' methodSet the secret key from Google Authenticator app
phone_prefixIntegerIf using 'sms' methodCountry code for phone number
phoneIntegerIf using 'sms' methodPhone number without country code

Get QR Code

curl GET "https://example.ziik.io/api/two-factor/qr"
  -H "Authorization: Bearer aaaaaaaaa.bbbbbbbbb.cccccccccc"
{
  "data": {
    "qr_image":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAIAAAAiOjnJAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFDklEQVR4nO3d224kJxhG0cwo7\/\/IVm6iUUsJCgzsOjhrXVqYKrc+YQT0z4+vr68\/4LSfd78A35NgkRAsEoJFQrBICBYJwSIhWCQEi4RgkRAsEoJFQrBICBYJwSIhWCQEi4RgkRAsEoJFQrBICBYJwSIhWCQEi8SfZ7v7+fN8Ukff1f581s73uUfvvNrn6t8+0\/\/ob7zyc\/49RiwSgkVCsEgcnmN9KuY9M3OL1TnT6hxu9POZNqvvOfMZFp\/zPiMWCcEiIVgkwjnWp5n\/5avzic8+V+dVq\/OnkZnnzvR5aq3u1Oe8z4hFQrBICBaJi+ZYp6zOaUZOzZ9G7U\/Nq97rO\/wNPJBgkRAsEi+bY+2sS+30P3rWjFP7hu9ixCIhWCQEi8RFc6xTc4XVvbPV+dapM1LFubEZz5mTGbFICBYJwSIRzrGesOe1eu7q1M8\/rfYz8\/6jNs\/xxHfiGxAsEoJF4sdzVj4Kp86kj\/rcmT\/tPOv5jFgkBIuEYJF4UH2sU\/WfVteTRk7VgNips3XX2ts+IxYJwSIhWCQOr2Od2tuq647OvE9Rg7Q4s1\/U5dpnxCIhWCQEi8ThdaxTNRRm6nyO1DVIZ9rs7BsW56uurBf\/d89Rv\/zPCRYJwSIRnsc6VTfhVH3RmTanfnfk1L7hapvrGbFICBYJwSJx0XmsYj9rZ25xqj5CcV6+fh97hbyYYJEQLBI33Fe4c\/ffqb251XeeaX\/l\/GnU5lSf+4xYJASLhGCRuLnO+6nz3afa75yXunLPcaaf1TZnGbFICBYJwSLxgvNYM\/3Xe447\/dx1PmxE7QZeTLBICBaJG9axnnAG6wnzv\/p3P12\/vmXEIiFYJASLRFgf69Nd3wGc8YT6WDv9PLOOvBGLhGCRECwSF61j7ZwxOvWsU\/Wxds5sFXdOz3w\/4HpGLBKCRUKwSNxQg\/TKmpz12lhdc3VnvljU65pnxCIhWCQEi8SD9gpHitruq\/2M+qzvujm1B1rUgPiPpx\/sC34RLBKCReKG+lj1fKg42766B1esjRVrTtaxeBnBIiFYJMLaDSM7857iO3erTtV9mOn\/VD\/XrF19MmKRECwSgkUi3Css6nZe+dxTNatGTn3y9+4JjhixSAgWCcEicdF5rE\/1XS4799vcVQOivk96hvNYvIBgkRAsEhfVbnjCetXM+xR7f6tO3dU402fHiEVCsEgIFomH7hWO2sw8d6TYI9u5x2bGlWt+ZxmxSAgWCcEicfM61qjNyGhOU9\/HvLP\/ONPP6rM+PaFW\/r888WBf8ItgkRAsEhetY82033HXHTv13UE77q1HasQiIVgkBIvEDbUbdtRn6k+te830OVLsmboTmm9CsEgIFonDe4VPOzO0M9\/aqR066mfG6r2HV64XzjNikRAsEoJF4oY67zNO1XB\/Wj+n1oqeVi\/+n4xYJASLhGCRuOjMe3Ev4epcYWd9aLU+wsgT6tRf403vyosIFgnBInHRHKs2833DTzvzs9Fzd\/qvazq4E5pvQrBICBaJF8+x6hrup85jjdrU9cBG7a+pR2rEIiFYJASLxA31sYo+T32fbmYPcfUdZt7n1HcG63sh5xmxSAgWCcEiEc6x6vNDT6gFWp8PG7X\/dOruanuFvIBgkRAsEi+rj8VbGLFICBYJwSIhWCQEi4RgkRAsEoJFQrBICBYJwSIhWCQEi4RgkRAsEoJFQrBICBYJwSIhWCQEi4RgkRAsEoJFQrBI\/AUohfEWPts8rQAAAABJRU5ErkJggg=="
  }
}

This endpoint returns 200 OK and the QR code for Google Authenticator as base64 encoded string in JSON content.

HTTP Request

GET https://example.ziik.io/api/two-factor/qr

Generate a New Secret

curl GET "https://example.ziik.io/api/two-factor/secret"
  -H "Authorization: Bearer aaaaaaaaa.bbbbbbbbb.cccccccccc"
{
  "data": {
    "secret_key": "T42NQXFCPWEJMGJY"
  }
}

This endpoint returns 200 OK and a new secret for Google Authenticator app

HTTP Request

GET https://example.ziik.io/api/two-factor/secret

Send SMS Verification Code

curl -i -X POST "https://example.ziik.io/api/two-factor/send-verification"
  -H "Authorization: Bearer aaaaaaaaa.bbbbbbbbb.cccccccccc"
  -d "{ [...] }"

The above command returns 204 No Content on successful update.

HTTP/1.0 204 No Content

This endpoint triggers a verification code to be sent by SMS to the user - if the user has SMS method

HTTP Request

POST https://example.ziik.io/api/two-factor/send-verification

Verify Two-Factor Authentication

curl -i -X POST "https://example.ziik.io/api/two-factor/verify"
  -H "Authorization: Bearer aaaaaaaaa.bbbbbbbbb.cccccccccc"
  -d "{ [...] }"

The above command returns 204 No Content on successful update.

HTTP/1.0 204 No Content

This endpoint verifies the user's two-factor authentication method

HTTP Request

POST https://example.ziik.io/api/two-factor/verify

Request Parameters

ParameterTypeRequiredDescription
keyStringYesCode sent via SMS or from Google Authenticator

Reset Two-Factor Authentication

curl -i -X POST "https://example.ziik.io/api/two-factor/reset"
  -H "Authorization: Bearer aaaaaaaaa.bbbbbbbbb.cccccccccc"
  -d "{ [...] }"

The above command returns 204 No Content on successful update.

HTTP/1.0 204 No Content

This endpoint resets the two-factor settings for a user

HTTP Request

POST https://example.ziik.io/api/users/ID/two-factor/reset

URL Parameters

ParameterTypeDescription
IDIntegerUser ID of the user, who should have Two-Factor authentication reset

Permissions Required

  • Current user must have edit permissions to the user from URL
Contributors: Christian Gerdes