Как стать автором
Обновить

Комментарии 6

Спасибо, как раз раздумывал, как сделать тоже самое.

диаграмма вроде понятна, но код я так и не понял. Особенно непонятно как реализуется «сервер авторизации перенаправляет пользователя на callback URL бота с указанием кода авторизации.». То есть страница с авторизацией открывается в самом клиенте телеграма, а потом после успешной авторизации бот получит какое то callback сообщение? Просто не увидел этого в коде. Руки если дойдут, то постараюсь попробовать. Еще раз спасибо

Я так понимаю, бот должен быть ещё и веб-сервером. Сервер авторизации открывает страницу логина в броузере (встроенном в телеграм, наверное), оттуда перенаправляет на страницу веб-сервера бота, и из этого запроса бот получает необходимые данные.

Все верно. Бот имеет HTTP endpoint, который обрабатывает callback-запрос (AuthEndpoint в нашем случае).

Рад, что статья вам оказалась полезна! :)


То есть страница с авторизацией открывается в самом клиенте телеграма, а потом после успешной авторизации бот получит какое то callback сообщение?

Последовательность будет следующая:


  1. Пользователь жмет на ссылку в сообщении.
  2. Эта ссылка открывается в браузере и пользователь попадает на страницу логина сервера авторизации.
  3. Пользователь заполняет форму логина и нажимает submit, браузер шлет запрос серверу авторизации.
  4. Если пользователь ввел корректный логин-пароль, сервер авторизации отвечает браузеру статусом 302 с указанием адреса, куда нужно сделать редирект. Этот адрес — это как раз callback URL бота.
  5. Браузер идет на callback URL.
  6. В этот момент вызывается метод AuthEndpoint.auth бота, который, собственно, отвечает за обработку запросов, приходящих на на callback URL. В этом методе бот по коду, который есть в параметрах callback URL, запрашивает у сервера авторизации токены.

Только auth flow тут не поток, а процедура...


А так — годное начинание )

Только auth flow тут не поток, а процедура...

Вы имеете в виду перевод? Я как раз на русском в основном встречал вариант "поток". А по смыслу да, "процедура" тоже вполне бы подошла.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации