vknet / vk

Vkontakte API for .NET
https://vknet.github.io/vk/
MIT License
568 stars 222 forks source link

Добавить асинхронный двухфакторный вход #558

Closed LiptonDev closed 1 year ago

LiptonDev commented 6 years ago

Есть 2 метода авторизации: AuthorizeAsync и Authorize. Почему в AuthorizeAsync нету возможности ввода двухфакторного кода асинхронно?

await API.AuthorizeAsync(new ApiAuthParamsAsync
{
    ApplicationId = AppID,
    Login = Login,
    Password = Password,
    Settings = Settings.Wall | Settings.Offline,
    TwoFactorAuthorizationAsync = GetCode
});

...

Task<string> GetCode() { .... }
inyutin-maxim commented 6 years ago

@LiptonOlolo Я долго думал, а для чего? асинхронность ради асинхронности? я считаю эта операцию должна быть синхронной

LiptonDev commented 6 years ago

@inyutin-maxim Ну смотри, есть, например, ТОЛЬКО асинхронная функция для, например, диалогового окна, в который я буду просить вводить человека код, но проблема в том, что если я запущу его синхронно (т.е. в конце добавлю .Result), то окно даже не появится, а вся форма попросту повиснет. Это нужно.

inyutin-maxim commented 6 years ago

@LiptonOlolo Мы открыты к пулл реквестам, я не знаю когда у меня появится время разобраться.

Panuchi commented 1 year ago

var api = new VkApi();
await api.AuthorizeAsync(new ApiAuthParams
{
    ApplicationId = 3453535,
    Login = "",
    Password = "",
    Settings = Settings.All,
    TwoFactorAuthorizationAsync = GetCode()
});

private static async Task<string> GetCode()
{
    Console.WriteLine("Enter Code:");
    return Console.ReadLine();
}
inyutin-maxim commented 1 year ago

Добавлено к следующему релизу. Либо можете получить обновление из альфа канала: https://www.myget.org/F/vknet