Проблема авторизации пользователя
Есть метод, который получает отформатированные login, pass, appID, token, по которым дальше происходит авторизация. Для примера возьму мой акк. Ввожу нужные данные в форме, они приходят в ниже приведённый метод, начинается авторизация, т.к. у меня включена 2fa, вылезает окно, которое просит секретный код. Всё идёт хорошо, код !приходит!, я ввожу, он уходит и вылетает ошибка, что логин или пароль были введёны неверно. Пробовал много раз, код ввожу я правильно, капча не вылазит, на всякий случай, заранее обработал её. Не пойму, что не так. Пробовал с разных приложений заходить, тоже результата 0. Я уже думаю, что это ограничение от ВК, не знаю, что делать. Буду рад любой информации, заранее благодарю.
private void UserAuth(string login, string pass, ulong appID, PopupAuth.TwoFactorSupported token)
{
ulong? captcha_sid = null;
string captcha_key = null;
try
{
if (token == PopupAuth.TwoFactorSupported.Supported)
{
try
{
api.Authorize(new ApiAuthParams() //вылетает тут
{
Login = login,
Password = pass,
ApplicationId = appID,
TwoFactorSupported = true,
TwoFactorAuthorization = SecretCode,
TokenExpireTime = 0,
CaptchaSid = captcha_sid,
CaptchaKey = captcha_key,
Settings = Settings.All
});
}
catch (CaptchaNeededException ex) when (ex.Data != null)
{
captcha_sid = ex.Sid;
CaptchaForm captcha = new CaptchaForm(ex.Img);
captcha.ShowDialog();
captcha_key = captcha.GetCaptchaKey;
api.Authorize(new ApiAuthParams()
{
Login = login,
Password = pass,
ApplicationId = appID,
TwoFactorSupported = true,
TwoFactorAuthorization = SecretCode,
TokenExpireTime = 0,
CaptchaSid = captcha_sid,
CaptchaKey = captcha_key,
Settings = Settings.All
});
}
}
else if (token == PopupAuth.TwoFactorSupported.NotSupported)
{
try
{
api.Authorize(new ApiAuthParams()
{
Login = login,
Password = pass,
ApplicationId = appID,
TokenExpireTime = 0,
CaptchaSid = captcha_sid,
CaptchaKey = captcha_key,
Settings = Settings.All
});
}
catch (CaptchaNeededException ex) when (ex.Data != null)
{
captcha_sid = ex.Sid;
CaptchaForm captcha = new CaptchaForm(ex.Img);
captcha.ShowDialog();
captcha_key = captcha.GetCaptchaKey;
api.Authorize(new ApiAuthParams()
{
Login = login,
Password = pass,
ApplicationId = appID,
TokenExpireTime = 0,
CaptchaSid = captcha_sid,
CaptchaKey = captcha_key,
Settings = Settings.All
});
}
}
if (api.IsAuthorized) UserLogged?.Invoke(api);
}
catch (Exception ex) when (ex.Data != null)
{
MessageBox.Show($"Message: {ex.Message}\r\n \r\n Stack: {ex.StackTrace}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Ответы (1 шт):
В общем, к чему я пришёл, с вероятностью в 99.9% процентов, это ограничение от ВК. Если у кого будет такая-же проблема, то может помочь прямая авторизация, но тут есть маленькая проблема. Почитайте Прямая авторизация.
