SolomonRei
Green Team
Добрый вечер.
Делаю прямую авторизацию в вк, если у пользователя стоит двухфакторная аутентификация, то нужно делать дополнительный запрос на подтверждение. В ответ пользователю приходит 6-ти значный код, который должен ввести в форму.
Дальше что с этим кодом делать и как получить токен, не понятно.
Цитата:
Ну, я собственно это и делаю
в итоге ошибка
{"error":"invalid_request","error_type":"wrong_otp","error_description":"wrong code"}
Подскажите пожалуйста, что можно сделать, может быть я не так понял документацию, спасибо!
Ссылка на документацию
Делаю прямую авторизацию в вк, если у пользователя стоит двухфакторная аутентификация, то нужно делать дополнительный запрос на подтверждение. В ответ пользователю приходит 6-ти значный код, который должен ввести в форму.
Дальше что с этим кодом делать и как получить токен, не понятно.
Цитата:
Необходимо запросить у пользователя код подтверждения и повторно отправить запрос на авторизацию с дополнительным параметром code, содержащим код подтверждения
Ну, я собственно это и делаю
PHP:
public function dataWrite()
{
//.......
return $this->sendQuery($this->collectQuery(Config::CLIENT_ID, Config::CLIENT_SECRET, $this->data['email'], $this->data['pass'], $this->data['code'], Config::SCOPE));
}
private function collectQuery(string $cliendId, string $clientSecret, string $username, string $password, string $code, string $scope) {
$this->params = [
'grant_type' => 'password',
'client_id' => $cliendId,
'client_secret' => $clientSecret,
'username' => $username,
'password' => $password,
'code' => $code,
'2fa_supported' => 1,
'v' => '5.103'
];
return urldecode(http_build_query($this->params));
}
private function sendQuery($query) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "https://oauth.vk.com/token?".$query);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$out = curl_exec($curl);
$q = $out;
curl_close($curl);
return $q;
}
{"error":"invalid_request","error_type":"wrong_otp","error_description":"wrong code"}
Подскажите пожалуйста, что можно сделать, может быть я не так понял документацию, спасибо!
Ссылка на документацию