Авторизация через VK: что под капотом и как это тестировать Хабр
Мы с вами уже затрагивали тему взаимодействия с этой социальной сетью, и там мы получали информацию из профиля пользователя без каких либо подтверждений. Она появится в адресной строке, подписанная как access_token. Вы получите access_token — строку наподобие 533bacf01e1165b57531ad114461ae8736d6506a3.
- Silent token используется, когда системе нужно выполнить операции без участия пользователя.
- Где «XXXXXXX» – ID вашего приложения.
- И является вашим уникальным ключом, который вы копируете и используете в своих целях.
- Мы с вами уже затрагивали тему взаимодействия с этой социальной сетью, и там мы получали информацию из профиля пользователя без каких либо подтверждений.
- Токены позволяют ограничивать доступ к данным пользователя с помощью параметра scope.
- В пути такого запроса передается тип авторизации — registration-vk и session_id тренера из базы данных.
Получить access token
Сразу после этого в нашей системе отправляется «тихий» системный запрос формата document, главная задача которого — инициировать JavaScript, отвечающий за авторизацию. Если пользователь нашелся, забираем из записи в базе данных его session ID. Наш бэкенд получил эту информацию, поэтому теперь он может обратиться к базе данных с просьбой найти тренера с нужным VK ID. В его квери-параметрах содержался ID профиля VK.
Соберите ссылку для получения ключа
Мы нажимаем кнопку VK на странице авторизации сайта покемонов. Нажимаешь волшебную кнопку «Войти с помощью….» и попадаешь в личный кабинет. Нажимая кнопку «Отправить» вы даете согласие на обработку своих персональных данных. Заполняем название приложения, при этом обязательно выбираем тип приложения «Standalone-приложение» и нажимаем «Подключить приложение».
Получение ключа доступа (access_token) для API «ВКонтакте»
Поэтому в таком запросе используется метод execute. Теперь можно нажать кнопку «Продолжить как….». Ключ в таком запросе нужен как раз для того, чтобы поддерживать и проверять соединение в фоновом режиме. Если в течение 25 секунд на сервере произойдет ожидаемое событие, сервер сразу отправит ответ. Мы можем отвлечься на TikTok с котиками, сходить налить себе чай, встретить курьера — в это время key будет охранять наш процесс авторизации.
Как получить токен пользователя для ВКонтакте?
А еще мы подготовили для вас большую блок-схему ссылка, которая иллюстрирует процесс авторизации в «Битве покемонов» через VK ID. Чем нагляднее — тем лучше. Мы разобрали на конкретном примере, как устроена авторизация через VK ID и каким образом можно ее протестировать. С session ID тренера связаны все остальные данные — в том числе ID профиля VK, который пользователь привязал к своему аккаунту.
Создайте Standalone приложение.
- Таким образом, если пользователь бездействует, клиент и сервер все равно будут поддерживать связь друг с другом, чтобы не пришлось начинать авторизацию заново.
- Таким образом, токен становится менее опасным, чем логин и пароль.
- К api.pokemonbattle.ru отправляется запрос, основная задача которого — перенаправить все полученные и подтвержденные данные от сервера VK к нашему бэкенду.
- Если пользователь нашелся, забираем из записи в базе данных его session ID.
Теперь эту бесценную информацию («ура! у нас есть доступ!») нужно каким-то образом передать серверу «Битвы покемонов», чтобы он направил нас в профиль пользователя на сайте pokemonbattle.ru. В пути такого запроса передается тип авторизации — registration-vk и session_id тренера из базы данных. В этот раз запрос достаточно сложный — серверу приходится оперировать большим объемом данных, ведь нужно верифицировать сразу несколько токенов. К api.pokemonbattle.ru отправляется запрос, основная задача которого — перенаправить все полученные и подтвержденные данные от сервера VK к нашему бэкенду.
Авторизация через VK: что под капотом?
Сервер VK обрабатывает данные с помощью своего внутреннего скрипта. Мы получили от VK все нужные токены и данные. Так мы мгновенно узнаём об изменениях в системе, нет необходимости отправлять запросы каждую секунду — а значит, экономится трафик и снижается нагрузка на сервер. Если за 25 секунд ничего не произойдет, сервер вернёт пустой ответ, и приложение само должно снова отправить запрос. Таким образом, если пользователь бездействует, клиент и сервер все равно будут поддерживать связь друг с другом, чтобы не пришлось начинать авторизацию заново. Он понадобится для поиска нашего пользователя уже внутри «Битвы покемонов».
Он понадобится серверу для подтверждения подлинности запросов в будущем, особенно если авторизация произойдет не сразу. Параллельно с этими запросами на api.vk.com отправляется так называемый anonymous token. Вместе с ним наше приложение получает право запросить часть данных пользователя — имя, фамилию, телефон, фотографию профиля. «Access_token» – это некий уникальный ключ доступа к API социальной сети «ВКонтакте». Токены позволяют ограничивать доступ к данным пользователя с помощью параметра scope.
Обратите внимание, что данный ключ – это лишь пример, и он не является рабочим. И является вашим уникальным ключом, который вы копируете и используете в своих целях. Где «XXXXXXX» – ID вашего приложения. После этого вам будет предложено подтвердить создание приложения. Но, прежде чем приступить к разработке своих приложений, необходимо получить этот уникальный ключ.
В нашей реализации «Битвы покемонов» мы получаем только ID пользователя в соцсети VK. Silent token используется, когда системе нужно выполнить операции без участия пользователя. Сначала происходит переход на один из поддоменов VK — id.vk.com.
Получить access token
Access token — аналог пропуска на стратегический объект. Несколько лет назад мы разработали для наших учеников тренажёр в виде игры «Битва покемонов». Авторизация в приложениях через сторонние сервисы уже давно стала привычной. Ваш же ключ не рекомендуем передавать третьим лицам во избежание взлома страницы и других неприятных ситуаций.
«Битва покемонов» устроена так, что каждому пользователю присваивается так называемый session ID — айди сессии тренера покемонов. Видим статус-код 302 и описание во вкладке Response — это значит, что запрос успешно перенаправлен. Сейчас он пришел и просит пустить его в аккаунт — подтверждаешь, что это те самые токены?
Самое время вспомнить о том запросе с редиректом, который перенаправил на наш сервер данные, подтвержденные VK. В query-параметрах как взломать лимит времени запроса передается UUID, ID пользователя VK и silent token. Это значит, что access token и silent token, привязанные к нашему запросу авторизации, верные.
Long Polling означает, что наше приложение отправляет запрос к серверу VK и ожидает ответа — в нашем случае до 25 секунд. Оно означает, что после получения ответа от сервера клиент будет каждые 25 секунд отправлять новый запрос до тех пор, пока пользователь не нажмет кнопку «Продолжить как…». В ответ на анонимный токен сервер присылает параметр «ключ» — key. Например, для записи статистики, обновления данных или доступа к API в автоматическом режиме с минимальным вмешательством человека. Таким образом, токен становится менее опасным, чем логин и пароль. Они используются для авторизации при запросах к API.
Создайте Standalone приложение.
Нажмите на кнопку “Редактировать” рядом с нужным приложением. Снова перейдите на страницу с вашими приложениями. Приложения создают на странице с вашими приложениями. Он определяет рамки видимости для вашего приложения. К тому же сама интеграция с VK ID может иметь свои особенности в разных приложениях. Зато всегда полезно знать о требованиях к кнопке входа и почитать про виды допустимых токенов.