This API generates signed authentication (auth_token) and refresh (refresh_token) tokens using the app's settings. The request payload allows storing custom claims such as sub (subject, typically a user ID, username, or email), aud (audience, such as web or mobile apps), ip, useragent, and any other key-value data.
curl --request POST \
--url http://{{your-endpoint}}:{{your-port}}/app/{{app-id}}/sign \
--header 'Authorization: {{app-key}}' \
--header 'content-type: application/json' \
--data '{
"sub":"test@test.com",
"aud":"web-app",
"ip": "1.1.1.1",
"useragent":"my-user-agent",
"personal":{
"name":"test-user"
}
}'
const request = require('request');
const options = {
method: 'POST',
url: 'http://{{your-endpoint}}:{{your-port}}/app/{{app-id}}/sign',
headers: {Authorization: '{{app-key}}', 'content-type': 'application/json'},
body: {
sub: 'test@test.com',
aud: 'web-app',
ip: '1.1.1.1',
useragent: 'my-user-agent',
personal: {name: 'test-user'}
},
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
import requests
url = "http://{{your-endpoint}}:{{your-port}}/app/{{app-id}}/sign"
payload = {
"sub": "test@test.com",
"aud": "web-app",
"ip": "1.1.1.1",
"useragent": "my-user-agent",
"personal": { "name": "test-user" }
}
headers = {
"Authorization": "{{app-key}}",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'http://{{your-endpoint}}:{{your-port}}/app/{{app-id}}/sign', [
'body' => '{
"sub":"test@test.com",
"aud":"web-app",
"ip": "1.1.1.1",
"useragent":"my-user-agent",
"personal":{
"name":"test-user"
}
}',
'headers' => [
'Authorization' => '{{app-key}}',
'content-type' => 'application/json',
],
]);
echo $response->getBody();
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://{{your-endpoint}}:{{your-port}}/app/{{app-id}}/sign"
payload := strings.NewReader("{\n \"sub\":\"test@test.com\",\n \"aud\":\"web-app\",\n \"ip\": \"1.1.1.1\",\n \"useragent\":\"my-user-agent\",\n \"personal\":{\n \"name\":\"test-user\" \n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "{{app-key}}")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
AsyncHttpClient client = new DefaultAsyncHttpClient();
client.prepare("POST", "http://{{your-endpoint}}:{{your-port}}/app/{{app-id}}/sign")
.setHeader("Authorization", "{{app-key}}")
.setHeader("content-type", "application/json")
.setBody("{\n \"sub\":\"test@test.com\",\n \"aud\":\"web-app\",\n \"ip\": \"1.1.1.1\",\n \"useragent\":\"my-user-agent\",\n \"personal\":{\n \"name\":\"test-user\" \n }\n}")
.execute()
.toCompletableFuture()
.thenAccept(System.out::println)
.join();
client.close();