Validate the request as retrieved from the Hanko Authenticator
curl --request PUT \
--url https://api.hanko.io/v1/uaf/requests/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"uafResponse": "<string>",
"deviceKeyInfo": {
"pushToken": "<string>",
"secret": "<string>",
"keyName": "<string>",
"deviceOs": "<string>",
"osVersion": "<string>",
"manufacturer": "<string>",
"model": "<string>"
}
}
'import requests
url = "https://api.hanko.io/v1/uaf/requests/{id}"
payload = {
"uafResponse": "<string>",
"deviceKeyInfo": {
"pushToken": "<string>",
"secret": "<string>",
"keyName": "<string>",
"deviceOs": "<string>",
"osVersion": "<string>",
"manufacturer": "<string>",
"model": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
uafResponse: '<string>',
deviceKeyInfo: {
pushToken: '<string>',
secret: '<string>',
keyName: '<string>',
deviceOs: '<string>',
osVersion: '<string>',
manufacturer: '<string>',
model: '<string>'
}
})
};
fetch('https://api.hanko.io/v1/uaf/requests/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hanko.io/v1/uaf/requests/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'uafResponse' => '<string>',
'deviceKeyInfo' => [
'pushToken' => '<string>',
'secret' => '<string>',
'keyName' => '<string>',
'deviceOs' => '<string>',
'osVersion' => '<string>',
'manufacturer' => '<string>',
'model' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hanko.io/v1/uaf/requests/{id}"
payload := strings.NewReader("{\n \"uafResponse\": \"<string>\",\n \"deviceKeyInfo\": {\n \"pushToken\": \"<string>\",\n \"secret\": \"<string>\",\n \"keyName\": \"<string>\",\n \"deviceOs\": \"<string>\",\n \"osVersion\": \"<string>\",\n \"manufacturer\": \"<string>\",\n \"model\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.hanko.io/v1/uaf/requests/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"uafResponse\": \"<string>\",\n \"deviceKeyInfo\": {\n \"pushToken\": \"<string>\",\n \"secret\": \"<string>\",\n \"keyName\": \"<string>\",\n \"deviceOs\": \"<string>\",\n \"osVersion\": \"<string>\",\n \"manufacturer\": \"<string>\",\n \"model\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hanko.io/v1/uaf/requests/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"uafResponse\": \"<string>\",\n \"deviceKeyInfo\": {\n \"pushToken\": \"<string>\",\n \"secret\": \"<string>\",\n \"keyName\": \"<string>\",\n \"deviceOs\": \"<string>\",\n \"osVersion\": \"<string>\",\n \"manufacturer\": \"<string>\",\n \"model\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"username": "<string>",
"userId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"validUntil": "2023-11-07T05:31:56Z",
"relyingParty": {
"id": "<string>",
"name": "<string>",
"appId": "<string>",
"icon": "<string>"
},
"links": [
{
"rel": "<string>",
"method": "<string>",
"href": "<string>"
}
],
"request": "<string>",
"deviceID": "<string>",
"clientData": {
"remoteAddress": "<string>",
"userAgent": "<string>"
},
"location": {
"country": "<string>",
"region": "<string>",
"city": "<string>"
},
"transaction": "<string>",
"device": {
"deviceId": "<string>",
"keyName": "<string>"
},
"isSecondFactorOnly": true,
"error": {
"code": 123,
"reason": "<string>"
}
}{
"code": 401,
"message": "Unauthorized"
}{
"code": 404,
"messsage": "Not Found."
}{
"code": 500,
"message": "Internal Server Error"
}Hanko Authenticator
Validate the request as retrieved from the Hanko Authenticator
Validate the cryptographic response returned by the Hanko Authenticator.
PUT
/
v1
/
uaf
/
requests
/
{id}
Validate the request as retrieved from the Hanko Authenticator
curl --request PUT \
--url https://api.hanko.io/v1/uaf/requests/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"uafResponse": "<string>",
"deviceKeyInfo": {
"pushToken": "<string>",
"secret": "<string>",
"keyName": "<string>",
"deviceOs": "<string>",
"osVersion": "<string>",
"manufacturer": "<string>",
"model": "<string>"
}
}
'import requests
url = "https://api.hanko.io/v1/uaf/requests/{id}"
payload = {
"uafResponse": "<string>",
"deviceKeyInfo": {
"pushToken": "<string>",
"secret": "<string>",
"keyName": "<string>",
"deviceOs": "<string>",
"osVersion": "<string>",
"manufacturer": "<string>",
"model": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
uafResponse: '<string>',
deviceKeyInfo: {
pushToken: '<string>',
secret: '<string>',
keyName: '<string>',
deviceOs: '<string>',
osVersion: '<string>',
manufacturer: '<string>',
model: '<string>'
}
})
};
fetch('https://api.hanko.io/v1/uaf/requests/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hanko.io/v1/uaf/requests/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'uafResponse' => '<string>',
'deviceKeyInfo' => [
'pushToken' => '<string>',
'secret' => '<string>',
'keyName' => '<string>',
'deviceOs' => '<string>',
'osVersion' => '<string>',
'manufacturer' => '<string>',
'model' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hanko.io/v1/uaf/requests/{id}"
payload := strings.NewReader("{\n \"uafResponse\": \"<string>\",\n \"deviceKeyInfo\": {\n \"pushToken\": \"<string>\",\n \"secret\": \"<string>\",\n \"keyName\": \"<string>\",\n \"deviceOs\": \"<string>\",\n \"osVersion\": \"<string>\",\n \"manufacturer\": \"<string>\",\n \"model\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.hanko.io/v1/uaf/requests/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"uafResponse\": \"<string>\",\n \"deviceKeyInfo\": {\n \"pushToken\": \"<string>\",\n \"secret\": \"<string>\",\n \"keyName\": \"<string>\",\n \"deviceOs\": \"<string>\",\n \"osVersion\": \"<string>\",\n \"manufacturer\": \"<string>\",\n \"model\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hanko.io/v1/uaf/requests/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"uafResponse\": \"<string>\",\n \"deviceKeyInfo\": {\n \"pushToken\": \"<string>\",\n \"secret\": \"<string>\",\n \"keyName\": \"<string>\",\n \"deviceOs\": \"<string>\",\n \"osVersion\": \"<string>\",\n \"manufacturer\": \"<string>\",\n \"model\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"username": "<string>",
"userId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"validUntil": "2023-11-07T05:31:56Z",
"relyingParty": {
"id": "<string>",
"name": "<string>",
"appId": "<string>",
"icon": "<string>"
},
"links": [
{
"rel": "<string>",
"method": "<string>",
"href": "<string>"
}
],
"request": "<string>",
"deviceID": "<string>",
"clientData": {
"remoteAddress": "<string>",
"userAgent": "<string>"
},
"location": {
"country": "<string>",
"region": "<string>",
"city": "<string>"
},
"transaction": "<string>",
"device": {
"deviceId": "<string>",
"keyName": "<string>"
},
"isSecondFactorOnly": true,
"error": {
"code": 123,
"reason": "<string>"
}
}{
"code": 401,
"message": "Unauthorized"
}{
"code": 404,
"messsage": "Not Found."
}{
"code": 500,
"message": "Internal Server Error"
}Authorizations
This API uses Authorization: secret <api_key>
rather than the standard Bearer scheme.
Path Parameters
General identifier used to describe a specific resource
Body
application/json
The description
Response
The full Hanko request for an initialized authentication operation including links
Available options:
AUTH, DEREG, REG Available options:
PENDING, OK, FAILED, INVALIDATED Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
Cancel the request for the Hanko AuthenticatorGet the QR code for a given Hanko Authenticator request
⌘I