открывается /oauth/login на моем сервере, нажимаю войти как,3 происходит аутентификация на яндексе,4 открывается страница сообщение с токеном. всё? как ее обработать? что дальше?
Сервер Яндекса должен получить от вашего сервера токен Для этого в запросе он передает редирект url который должен быть разрешен в настройках навыка
На пальцах примерно так: 1. пользователь нажал "привязать к яндексу" 2. яндекс отправляет Вам запрос на URL авторизации с GET параметрами state, scope, client_id и redirect_url
На пальцах примерно так: 1. пользователь нажал "привязать к яндексу" 2. яндекс отправляет Вам запрос на URL авторизации с GET параметрами state, scope, client_id и redirect_url 3. Вы авторизуете пользователя и в случае успеха возвращаете ответ 302 с адресом из redirect_url, сохранив state, scope, client_id и добавив временный код code (запомнив его и время выдачи) 4. яндекс отправляет Вам POST запрос на получение токена. В теле запроса есть временный код code, client_id, client_secret, redirect_url и grant_type 5. Как минимум достаточно проверить client_id, client_secret, убедиться что код соответствует коду из п.3 и время выдачи не больше (например) 10 минут. Если все Ок то вернуть 200 Ок с телом json { "access_token":"'token", "token_type":"bearer", "expires_in":4294967296 } Более подробно в ссылке из доки яндекса https://datatracker.ietf.org/doc/html/rfc6749 Там можно анализировать и менять(?) scope, уменьшить время жизни токене и сообщив рефреш-токен с которым яндекс придет на refresf_token_url при получении unauthorized от Вас.
п.1 приходит на (URL авторизации навыка) /auth/login п.4. яндекс мне это на какой uri? context?отправляет? где мне это ловить и обрабатывать?
На URL для получения токена
спасибо! вроде части реализовал, а вот в кучу собрать непредставляю как, нескладывается в голове схема, может где схема есть?...
я когда нажимаю Привязать к Яндекс у меня первый запрос прилетает на https://sqtest.loca.lt/oauth/login
Обсуждают сегодня