Как сделать почтовый запрос для входа в систему https://analytics.oag.com/analyser-client/home (веб-сайт Javascript)

Я пытался завить с помощью команды

curl 'https://analytics.oag.com/analyser-client/home' -H 'Accept-Language: 
en-US,en;q=0.9' -H 'Connection: keep-alive' -H 'Accept-Language: en- 
US,en;q=0.9' -H 'Host: analytics.oag.com' -H 'User-Agent: Mozilla/5.0 
(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/66.0.3359.181 Safari/537.36' -H 'Content-Type: text/html;charset=UTF- 
8' --data '{"username":"test","password":"test"}'

Но, похоже, это не работает ... Не уверен, какие части мне не хватает ... Есть идеи, как войти на этот сайт?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Not sure what parts am I missing - вам не хватает идентификатора сеанса cookie, заголовка referer и заголовка X-Requested-With: XMLHttpRequest, и ваш заголовок Content-Type неверен (предполагается, что это Content-Type: application/json), также страница входа загружается дважды, если вы посещаете ее без cookie-сеанс (сначала он получает сеанс cookie, затем обновляется), вам, вероятно, следует выполнить вход в систему. вы специально упомянули python, я не знаю, как это сделать на python, но вот как я бы сделал это на PHP с hhb_curl:

<?php
declare(strict_types = 1);
require_once ('hhb_.inc.php');
$hc = new hhb_curl ( '', true );
// getting cookie session and refresh (dunno why we need to refresh, but the login page javascript is doing it, so follow suite)
$hc->exec ( 'https://analytics.oag.com/analyser-client/home' )->exec ( 'https://analytics.oag.com/analyser-client/home' );
$response = $hc->setopt_array ( array (
        CURLOPT_POST => 1,
        CURLOPT_URL => 'https://analytics.oag.com/analyser-client/broker-services/login/validate',
        CURLOPT_HTTPHEADER => array (
                'Content-Type: application/json',
                'Origin: https://analytics.oag.com', // i don't think curl set this header this automatically
                'X-Requested-With: XMLHttpRequest' 
        ),
        CURLOPT_POSTFIELDS => json_encode ( array (
                'username' => 'username?',
                'password' => 'password?' 
        ) ) 
) )->exec ()->getResponseBody ();
var_dump ( $response );
$parsed = @json_decode ( $response, true );
if (empty ( $parsed ) || $parsed ['status'] === 'ERROR') {
    throw new \RuntimeException ( 'failed to login! ' . $response );
}

Большое спасибо! Это действительно работает! Но мне просто интересно, как я могу переходить на другие веб-сайты, оставаясь авторизованным? Я действительно не знаком с php, есть ли полезный учебник по этому поводу?

Tiantian Tian 22.05.2018 23:55

@TiantianTian просто продолжит использовать тот же дескриптор curl (или, в данном случае, дескриптор hhb_curl), он будет продолжать использовать ваш файл cookie с идентификатором сеанса, который будет держать вас в системе. Например, чтобы получить первую страницу после входа в систему, выполните $html=$hc->exec('https://analytics.oag.com/analyser-client/h‌​ome')->getStdOut(); var_dump($html);. и извините, я не знаю ни одного учебника по этому поводу. Я научился этому методом проб и ошибок, в значительной степени пытаясь войти на другие веб-сайты.

hanshenrik 23.05.2018 00:07

Спасибо большое за вашу помощь!! Еще одна вещь: как узнать URL-адрес CURLOPT_URL? Если мы хотим войти на другие веб-сайты, как мы узнаем, что включить в 'CURLOPT_HTTPHEADER =>'? Вы только что выяснили это через раздел сети в инструменте разработчика Chrome? Еще раз спасибо за помощь!! Действительно ценю это!!!

Tiantian Tian 23.05.2018 04:25

@TiantianTian Did you just figure that out through the network section in chrome developer tool? - да, я сделал! :) для большинства веб-сайтов достаточно инструментов chrome dev. но для некоторых избранных может потребоваться (не строго) Fiddler Proxy. (не обязательно, но может упростить понимание)

hanshenrik 23.05.2018 10:44

Еще раз спасибо за помощь! И последний вопрос, как я могу отправить запрос на публикацию на другой странице после входа в систему? Это похоже на вход на другую страницу после входа в систему. Я попытался выполнить те же действия, используя $ response = $ hc-> setopt_array (...), но мне кажется, что мне нужно снова войти в систему таким образом ... Как я мог бы с этим поработать? Я снова очень признателен за вашу помощь !!!!

Tiantian Tian 23.05.2018 23:47

Также файлы cookie устанавливаются javascript, есть ли способ, которым hhb_curl может обнаружить эти файлы cookie? Заранее спасибо !!

Tiantian Tian 24.05.2018 06:23

@TiantianTian он не может напрямую принимать файлы cookie из javascript, но вы можете вручную извлечь файлы cookie из javascript и передать их hhb_curl через CURLOPT_COOKIELIST. хотя я сомневаюсь, что смогу помочь без доступа к действительной действующей комбинации учетной записи и пароля.

hanshenrik 24.05.2018 11:32

Другие вопросы по теме