Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Авторизация в Xenforo | Xenforo auth\login

  • Автор темы Автор темы coder.
  • Дата начала Дата начала
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
28 Окт 2018
Сообщения
139
Реакции
47
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Решил немного отвлечься от ареха и говнокс и написать простой гайд,ибо наблюдал много случаев,когда требовался лоадер с авторизацией xenforo.

Итак,нам нужны :
- curl (
Пожалуйста, авторизуйтесь для просмотра ссылки.
)
- boost (
Пожалуйста, авторизуйтесь для просмотра ссылки.
)


Т.к. обычный способ get запроса и получение ответа здесь не канает,то мы будем посылать post запрос и получать response_code

Пишем строку того,что мы будем отсылать:
Код:
Expand Collapse Copy
    string req = ("login=") + out_name + ("&register=0&password=") + out_pass + OBFUSCATED("&remember=0&cookie_check=0&redirect=/&_xfToken=");

- out_name и out_pass - логин и пароль от форума соответственно.

Далее делаем настройку и подключение :
Код:
Expand Collapse Copy
static char errorBuffer[CURL_ERROR_SIZE];
                        static string buffers;
                        CURL *curl = nullptr;
                        CURLcode result;
                        curl = curl_easy_init();


                        if (curl)
                        {
                            string req = ("login=") + out_name + ("&register=0&password=") + out_pass + OBFUSCATED("&remember=0&cookie_check=0&redirect=/&_xfToken=");
                            curl_easy_setopt(curl, CURLOPT_USERAGENT, ("xen_load"));
                            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
                            curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffers);
                            curl_easy_setopt(curl, CURLOPT_URL, ("http://yoursite.ru/login/login/"));
                            curl_easy_setopt(curl, CURLOPT_HEADER, 0);
                            curl_easy_setopt(curl, CURLOPT_POST, 1);
                            curl_easy_setopt(curl, CURLOPT_POSTFIELDS, req.c_str());
                       
                            result = curl_easy_perform(curl);
               
                            long response_code = 0;
                            curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);

                            if (result == CURLE_OK)
                            {
                            }
                        }
                        curl_easy_cleanup(curl);

                    }

Код Writers :
Код:
Expand Collapse Copy
static int writer(char *data, size_t size, size_t nmemb, string *buffer)
{
    int result = 0;
    if (buffer != NULL)
    {
        buffer->append(data, size * nmemb);
        result = size * nmemb;
    }
    return result;
}
Итак,когда у нас прошел ответ делаем простенькую проверку на response_code :
Код:
Expand Collapse Copy
    auto resp = to_string(response_code);
                               
                                if (resp == "303") {
                                //good
                                }else{//bad}

Пример работоспособности :
На этом,собственно все.
Полный листинг :
Код:
Expand Collapse Copy
    static char errorBuffer[CURL_ERROR_SIZE];
                        static string buffers;
                        CURL *curl = nullptr;
                        CURLcode result;
                        curl = curl_easy_init();


                        if (curl)
                        {
                            string req = ("login=") + out_name + ("&register=0&password=") + out_pass + OBFUSCATED("&remember=0&cookie_check=0&redirect=/&_xfToken=");
                            curl_easy_setopt(curl, CURLOPT_USERAGENT, ("xen_load"));
                            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
                            curl_easy_setopt(curl, CURLOPT_WRITEDATA, &buffers);
                            curl_easy_setopt(curl, CURLOPT_URL, ("http://yoursite.ru/login/login/"));
                            curl_easy_setopt(curl, CURLOPT_HEADER, 0);
                            curl_easy_setopt(curl, CURLOPT_POST, 1);
                            curl_easy_setopt(curl, CURLOPT_POSTFIELDS, req.c_str());
                       
                            result = curl_easy_perform(curl);
               
                            long response_code = 0;
                            curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);

                            if (result == CURLE_OK)
                            {
                                auto resp = to_string(response_code);
                               
                                if (resp == "303") {
                                //good auth
                                }
                                else {
                                    //bad auth
                                }
                            }
                        }
                        curl_easy_cleanup(curl);

                    }
 
Последнее редактирование:
это кидать на кнопку авторизоваться ?
 
Назад
Сверху Снизу