Create Authentication Token

POST /node/api/users/:id/auth-token

Creates a new authentication token that you can use for authentication in the subsequent requests.

Permissions: manage-users.

Request parameters

Path parameters

Parameter

Type

Description

id

string

required

The ID of a user for which an authentication token should be created.

Response description

...

Examples

Creating a new authentication token

To create an authentication token, you need to provide your login credentials along with your user id. The examples below demonstrate how this can be done using Basic Access Authentication:

Bash
JavaScript
NodeJS
Python
Bash
login=<...>
password=<...>
user_id=<...>
saymon_hostname=<...>
url=https://$saymon_hostname/node/api/users/$user_id/auth-token
curl -X POST $url -u $login:$password
JavaScript
let login = <...>
let password = <...>
let userId = <...>
let saymonHostname = <...>
let path = "/node/api/users/" + userId + "/auth-token";
let auth = "Basic " + btoa(login + ":" + password);
let headers = new Headers();
headers.append("Authorization", auth);
let requestOptions = {
method: "POST",
headers: headers
};
fetch(saymonHostname + path, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log("error", error));
NodeJS
const http = require("http");
let login = <...>
let password = <...>
let userId = <...>
let saymonHostname = <...>
let path = "/node/api/users/" + userId + "/auth-token";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");
let options = {
"method": "POST",
"hostname": saymonHostname,
"headers": {
Authorization: auth
},
"path": path
};
let req = http.request(options, function (res) {
let chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
let body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
Python
import requests
login = <...>
password = <...>
user_id = <...>
saymon_hostname = <...>
url = "https://" + saymon_hostname + "/node/api/users/" + \
user_id + "/auth-token"
response = requests.request("POST", url, auth=(login, password))
print(response.text)

Using the created authentication token

After the token is created, you need to provide it in the subsequent requests as a query parameter. The examples below show how to do it for the Get Current User API method:

Bash
JavaScript
NodeJS
Python
Bash
saymon_hostname=<...>
api_token=<...>
url=https://$saymon_hostname/node/api/users/current
curl -X GET $url?api-token=$api_token
JavaScript
let authToken = <...>
let saymonHostname = <...>
let path = "/node/api/users/current?api-token=" + authToken;
let requestOptions = {
method: "GET"
};
fetch(saymonHostname + path, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log("error", error));
NodeJS
const http = require("http");
let authToken = <...>
let saymonHostname = <...>
let path = "/node/api/users/current?api-token=" + authToken;
let options = {
"method": "GET",
"hostname": saymonHostname,
"path": path
};
let req = http.request(options, function (res) {
let chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
let body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
Python
import requests
api_token = <...>
saymon_hostname = <...>
url = "https://" + saymon_hostname + "/node/api/users/current"
params = {"api-token": api_token}
response = requests.request("GET", url, params=params)
print(response.text)

A successful response looks like this:

{
"id": "your_id",
"login": "your_login",
"authenticationToken": "your_auth_token",
...
}