Я разрабатываю серверную часть для многопользовательской игры. Есть необходимость реализовать вход в игру через ВК. Я попробовал следующую схему:
1. Клиент игры авторизуется и получает токен через
OAuth (вопрос: какой метод авторизации выбрать
Клиентская авторизация или
Серверная авторизация), redirect_uri ссылается на сервер с игрой
2. Клиент игры передает токен на сервер, сервер идет с переданным токеном в ВК и пытается получить информацию о пользователе.
Но когда я реализовал такую схему то возникла проблема, когда с севера делается запрос в ВК с полученным от клиента токеном, то ВК возвращает следующий ответ
{"error":{"error_code":17,"error_msg":"Validation required: please open redirect_uri in browser 204211657","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"users.get"},{"key":"v","value":"5.44"}],"redirect_uri":"https://m.vk.com/login?act=security_check&api_hash=93...28"}},
при этом неважно какой метод (серверный или клиентский) авторизации используется, для получения токена, на клиенте, ответ один и тот же. После перехода по ссылке, указанной в ответе от ВК, и прохождения валидации (путем ввода номера телефона и кода из смс) на клиенте, сервер вновь пытается получить информацию о пользователе от ВК и получает тот же ответ с ошибкой 17.
Подскажите пожалуйста как, все таки, правильно организовать авторизацию через ВК? Какие действия должны осуществляться на сервере а какие на клиенте?