LINUX.ORG.RU

Получение токена регистрации

 ,


1

4

Всем доброго дня. Появилсь задачка - написать скриптик, который был на входе получал данные, и их запросами отправлял на некоторый сервер, дабы с ними там что-то происходило. Всё посто и реализовано. Но есть одно НО...

Для подключения к серверу требуется зайти на портал госуслуг(gosuslugi.ru), получить токен входа, и прикладывать его к каждому запросу. Приложить токен к запросу - легко.

Трудность в том, что не получается найти как можно зайти туда curl'ом, и получить в ответ нужный так токен.

Никто не сталкивался с такой задачей? Поля снилса и пароля - snils, password, а вот отловить, куда как сформировать запрос дальше - не получилось.



Последнее исправление: PearlyDragon (всего исправлений: 1)

посмотри, какие запросы отправляет браузер при логине на госуслугах, и сделай аналог

bvn13 ★★★★★
()
Ответ на: комментарий от bvn13

Проблема в чём. Оно заходит из любого браузера по снился и по телефону. НО, тут организация и вход по ЭЦП-ключу, физическому, при помощи которого не входит ни чем. Кроме эксплорера. Как в нём посмотреть, каким макаром он всё это прикладывает и в каком виде? Как просто снился + пароль - я посмотрел и под собой могу зайти. А вот как организация при содействии ключа...

PearlyDragon
() автор топика
Ответ на: комментарий от PearlyDragon

ну так надо было в теги добавить «эцп» и «cryptopro», может скастовало кого знающего

bvn13 ★★★★★
()
Ответ на: комментарий от PearlyDragon

Ну в общем есть возможность зайти без ЭЦП. В Network у FF, я заметил, что оно при нажатии на войти делает post к https://esia.gosuslugi.ru/idp/login/pwd/do с некоторыми параметрами, среди которых есть непонятный параметр command. Который имеет вид длинной строки, которую можно декодировать из base64, и получается вот что:

{"typ":"JWT","kid":"lgn_ctx","alg":"HS256"}�&�WF��B#�'vB"�&GFV�G2#����O}k�.�)
�L�L�c(iaA�K5�L
Естественно, что непонятная часть меняется. Как бы узнать, что в этой части передаётся серверу, чтобы знать, что передать и нормально залогинится?

PearlyDragon
() автор топика
Ответ на: комментарий от PearlyDragon

Вообще принцип авторизации более или менее ясен: 1) берём как-то генерируем поле command, к нему приписываем логин/пароль. 2) отправляем. 3) запрашиваем организации пользователя. 4) выбираем ид_рганизации. 5) добавляем ид к запросу. 6) делаем запрос на вход как организация. 7) в редиректе ловим параметер token, который потом будет везде нужен. Вопрос только в том, как оно формирует поле command.

PearlyDragon
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.