Как авторизоваться на сайте через приложение на NodeJS?
Необходимо авторизоваться на сайте из приложения работающего на NodeJS.
Авторизация происходит по логину и паролю, сайт поддерживает авторизацию через гугл и прочее(что видимо говорит о OAuth), но нужно авторизоваться именно по логину и паролю. Сама авторизация необходима для подключения по Websocket и обмена сообщениями, минуя интерфейс сайта.
При входе на сайт, отправляется POST запрос на другой домен, в теле которого:
csrfToken: 3a3b3776bd17e65112fbc0baa4a4da8a
radio: sign
sign: *login*
password: *password*
Код ответа всегда 303, независимо от того успешная авторизация или нет.
Вопрос в том каким путём пойти?
1) Делать цепочку запросов, собирать cookies искать откуда берётся csrfToken и т.д...
2) Есть ли смысл в данном случае использовать Puppeter?
Вопрос роботности тут не стоит, так авторизацию нужно получить один раз.
Делаете get получаете форму, достаете все включая csrfToken и куки, отправляете постом в ответ получаете видимо авторизационные куки, которыми будете потом пользоваться. По сути прикидываетесь браузером. Сложность может быть если форма рендериться каким-то js скриптом, тогда надо будет брать selenium или что-то типа того.
Но вообще затея пахнет говнокодом. Неужели у сайта нет api? Зачем так больно?
Видимо притворяться бразуером все равно придётся, Selenium...хотя и Puppeter тоже вполне подойдёт.
Понятно что такая интеграция будет ненадёжна и если что то поменяется то всё сломается и нужно будет это отслеживать.
API естественно нету, крупные площадки не хотят терять пользователей, поэтому не делают API, с помощью которых эти самые пользователи бы ушли