error_code 17 при аутентификации пользователя на сайте ВКонтакте

Рейтинг: 0Ответов: 1Опубликовано: 21.11.2014

Есть Standalone-приложение VK.

Пользователь проводит OAuth-авторизацию для получения access_token по документации.

Процесс авторизации приложения состоит из трёх шагов:

  1. Открытие окна браузера для аутентификации пользователя на сайте ВКонтакте.

  2. Разрешение пользователем доступа к своим данным.

  3. Передача в приложение ключа access_token для доступа к API.

На третьем шаге начинается самое интересное — некоторые пользователи получают токен и всё работает, а некоторые получают error_code 17 (Ошибка при заходе из подозрительного места).

Пользователь выполняет процедуру проверки, описанную в документации, и получает следующего формата URL:

https://oauth.vk.com/blank.html#success=1&access_token={НОВЫЙ ТОКЕН ПОЛЬЗОВАТЕЛЯ}&user_id={ИДЕНТИФИКАТОР ПОЛЬЗОВАТЕЛЯ}

Теперь пользователь пытается выполнить запрос к API уже с новым токеном и опять получает error_code 17.

Пользователи выполняют процедуру проверки несколько раз, так в итоге и не получив токен.

Может, кто сталкивался с такой проблемой или есть какие-либо идеи?

Ответы

▲ 2

Костыль А: указывать старую версию API (<3) в параметрах запроса. В таком варианте удавалось обходить капчу и другие ограничения по безопасности. Но это до тех пор, пока не отключат поддержку этих старых версий;

Вариант Б: не нарушать правила ВК и решать задачи методами, доступными для приложений типа Site/iFrame;

Вариант В: делегирование. Через Standalone работать от имени своих нескольких аккаунтов, авторизованных прямо с сервера, а клиенты пусть дают этим аккаунтам разрешения – админить их группы, рекламный кабинет и пр.