Зарегистрировать пользователя

Создаёт нового пользователя и посылает email с подтверждением регистрации.

Чтобы создать нового пользователя, сначала нужно Сгенерировать CAPTCHA, а потом передать токен и решённую CAPTCHA в теле запроса.

Также, параметр конфигурации server.user.auth_enabled должен иметь значение true.

Запрос

HTTP Запрос

POST /node/api/users/signup

Права

manage-users

Параметры пути

Параметры не требуются.

Параметры тела запроса

Параметр Тип Описание

token

String
обязательный

Токен для регистрации. Возвращается запросом Сгенерировать CAPTCHA.

captcha

String
обязательный

Решение CAPTCHA сгенерированной запросом Сгенерировать CAPTCHA.

email

String
обязательный

Email пользователя.

login

String
обязательный

Логин пользователя.

password

String
обязательный

Пароль пользователя.

Тело запроса

Пароль должен соответствовать стандартной Парольной политике.
{
    "token": "5c2ef019-cca8-40de-b306-050dd976c743",
    "captcha": "1qTY",
    "login": "user_login",
    "email": "user_email@example.com",
    "password": "1111"
}

Ответ

Подробная информация о модели доступна в статье Пользователь.

Пример

Запрос

  • Bash

  • JavaScript

  • NodeJS

  • Python

login=<...>
password=<...>
saymon_hostname=<...>
url=https://$saymon_hostname/node/api/users/signup

curl -X POST $url -u $login:$password \
    -H "Content-Type: application/json" \
    -d @- <<EOF
{
    "token": "5c2ef019-cca8-40de-b306-050dd976c743",
    "captcha": "1qTY",
    "login": "user_login",
    "email": "user_email@example.com",
    "password": "1111"
}
EOF
let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/users/signup";
let auth = "Basic " + btoa(login + ":" + password);

let headers = new Headers();
headers.append("Content-Type", "application/json");
headers.append("Authorization", auth);

let data = JSON.stringify({
    "token": "5c2ef019-cca8-40de-b306-050dd976c743",
    "captcha": "1qTY",
    "login": "user_login",
    "email": "user_email@example.com",
    "password": "1111"
});

let requestOptions = {
    method: "POST",
    headers: headers,
    body: data
};

fetch(saymonHostname + path, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log("error", error));
const http = require("http");

let login = <...>
let password = <...>
let saymonHostname = <...>
let path = "/node/api/users/signup";
let auth = "Basic " + Buffer.from(login + ":" + password).toString("base64");

let options = {
    "method": "POST",
    "hostname": saymonHostname,
    "headers": {
        "Authorization": auth,
        "Content-Type": "application/json"
    },
    "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);
    });
});

let data = JSON.stringify({
    "token": "5c2ef019-cca8-40de-b306-050dd976c743",
    "captcha": "1qTY",
    "login": "user_login",
    "email": "user_email@example.com",
    "password": "1111"
});

req.write(data);
req.end();
import requests

login = <...>
password = <...>
saymon_hostname = <...>
url = "https://" + saymon_hostname + "/node/api/users/signup"

body = {
    "token": "5c2ef019-cca8-40de-b306-050dd976c743",
    "captcha": "1qTY",
    "login": "user_login",
    "email": "user_email@example.com",
    "password": "1111"
}

response = requests.request("POST", url, json=body, auth=(login, password))
print(response.text)

Ответ

{
    "login": "user_login",
    "email": "user_email@example.com",
    "status": 0,
    "eventFilter": [],
    "objectPermissions": {
        "include": [
            "817",
            "5e84d165866ec23538892f7d"
        ],
        "exclude": [
            "5e84d212866ec23538893061"
        ]
    },
    "permissions": [
        "manage-objects",
        "manage-links",
        "manage-service-properties",
        "view-section-stat",
        "view-section-monitoring",
        "view-section-history-graph"
    ],
    "contacts": [],
    "id": "5ec7ebe421ca22645150af09"
}