Данные о пользователе можно получить с помощью Access token или ID token. Токены содержат в себе данные, которые вы запросили и пользователь выдал вашему приложению. Есть два вида доступов:
Базовые — фамилия и имя, фото профиля, пол и дата рождения, а также почта по запросу.
Расширенные — номер телефона.
Работать с базовыми доступами можно сразу после создания приложения в сервисе авторизации VK ID. Чтобы работать с расширенными доступами, подтвердите профиль бизнеса. Если бизнес-профиль уже подтверждён, расширенные доступы будут включены автоматически.Помимо указанных доступов, есть другие расширенные, такие как список друзей, видеозаписи, фотографии и другие. Они выдаются в исключительных случаях — для их получения напишите на почту devsupport@corp.vk.com.
Получение данных с помощью Access token
Сам Access token приходит вместе с Refresh token и ID token в результате обмена на код подтверждения, который возвращается после авторизации пользователя в URL перенаправления или в callback. Такой код можно получить только с фронтенда приложения — требуется подтверждение пользователя, что он разрешает приложению обращаться к API от своего имени.Есть два способа получения Access token по Authorization Code Flow:
(рекомендуемый) когда обмен авторизационного кода на токены происходит с бэкенда приложения. Это более безопасный способ, так как полученный Refresh token будет храниться не в открытом виде, а на бэкенде. Поэтому злоумышленнику сложнее добраться до него;
когда обмен авторизационного кода на токены происходит с фронтенда приложения. Этот способ возможен для случая, когда у вашего приложения нет бэкенда. Обязательно используйте расширение PKCE для защиты передаваемых данных.
Чтобы обменять авторизационный код на токены, воспользуйтесь методом SDK VKID.Auth.exchangeCode(code, device_id), передав туда code и device_id, которые получены после авторизации.Когда у вас будет Access token, для получения информации о пользователе воспользуйтесь:
методом API VK ID id.vk.ru/oauth2/user_info. Этот метод возвращает те же данные, что и метод SDK выше;
методом API ВКонтакте users.get(). Метод возвращает информацию со страницы пользователя — обратите внимание, что эта информация заполняется пользователем вручную и никак не проверяется с нашей стороны.
ID token приходит вместе с Access token и Refresh token после обмена авторизационного кода.С помощью ID token можно получить следующие данные пользователя: первую букву фамилии, имя, идентификатор пользователя, фото, маскированные номер телефона и почту. Для этого вызовите: