Как узнать конкретно ник игрока на вашем сайте?

Делаю аналог Userrecon для серверов майнкрафт (Захотел, опенсурс)

Решил добавить вас и столкнулся с проблемой, у вас в профиле после ника идет точка с его ID
Это довольно сильно усложняет поиск человека, ведь единственное что я придумал - делать цикл от 0 и пока не найдет. Но я думаю ваш форум не одобрит 10к запросов за секунду.

Что же делать?
Посмотреть код можете тут hijuce/minerecon
 
153
21
41
Для начала у нас есть ссылка: Но не все так просто, теперь нужно получить куки и токен, по другому нам ничего не дадут.
И так, отправляем запрос на главную страницу, из ответа забираем data-csrf и куки. Далее отправляем запрос на наш url с нашими куки и на место токена ставим data-csrf, получаем json, и парсим оттуда наш data-user-id.
В итоге ссылка на профиль будет выглядеть так: forum.mcmodding.ru/members/data-user-id.

JavaScript:
const https = require('https');

let jsonResponse;

let token;
let token_found = false;
let cookie;

function setupData()
{
    https.get('https://forum.mcmodding.ru/', (response) =>
    {
        response.on('data', (data) =>
        {
            if (!token_found)
            {
                cookie = response.headers['set-cookie'];
                token = data.toString('utf8').substring(206).substring(0, 43);
                token_found = true;
              
                getId();
            }
        })
    })
}

function getId()
{
    const options =
          {
              hostname: 'forum.mcmodding.ru',
              port: 443,
              path: '/index.php?members/find&q=Mayliquez&_xfRequestUri=%2Fmembers%2F&_xfWithData=1&_xfToken=' + token.split(",")[0] + '%2C' + token.split(",")[1] + '&_xfResponseType=json',
              method: 'GET',
              headers:
              {
                  'cookie': cookie
              }
          }
  
    const request = https.request(options, (response) =>
    {
        response.on('data', (data) =>
        {
            jsonResponse = JSON.parse(data);
        });
    });

    request.end();
}

setupData();
1619343669111.png
 
Последнее редактирование:
Сверху