vodka2 / vk-music-fs

FUSE file system for VK audios
37 stars 4 forks source link

Проблемы при двухфакторной аутентификаций redirect_uri #4

Open m0rphed opened 4 years ago

m0rphed commented 4 years ago

System: Manjaro x64 vk-music-fs-git: from AUR

При попытки соедениться с ВК выдaёт:

➜  ~ vk_music_fs --get_token <+01234567890> <my_passwd>
No user id or access token in response. Response: 

{"error":"need_validation","validation_type":"2fa_app","validation_sid":"2fa_377999756_2685278_e2185ad866ca70e22b","phone_mask":"+0 *** *** ** 90",

"error_description":"open redirect_uri in browser [5].
Also you can use 2fa_supported param",

"redirect_uri":"https:\/\/m.vk.com\/login?act=authcheck&api_hash=<my_private_hash>"}

Я попробовал перейти по redirect_uri вручную, в 9/10 случаев получал сообщение что сессия устарела.

В итоге, я всё-таки смог авторизоваться и получить access token.

Не ясно как должен выглядеть в таких случаях user_agent в ~/.config/VkMusicFs/VkMusicFs.ini -- в README не помешал бы более подробный пример.

После чего явно передал полученный токен через:

➜  ~ vk_music_fs --token <got_token> ~/VkMusicFs

После этого VkMusicFs успешно подмонтирповалась, но к сожалению всё равно не скачивает треки.

➜  My audios ls -la
total 0
drwxrwxrwx 1 root root    0 янв 14 18:00  0-100
-rwxrwxrwx 1 root root 1165 янв 14 18:00 'и в официальных приложениях ВКонтакте - Аудио доступно на vk.com.mp3'

Возможно дело в том, что не указан user_agent.

vodka2 commented 4 years ago

@m0rphed двухфакторная авторизация пока не поддерживается, но вообще можно ведь указать пароль для приложения в настройках ВК. Хотя, если уже получилось авторизоваться, то User-Agent есть в исходном коде.

Описание параметров в ini действительно, нужно добавить в README, они имеют вид

token=<token>
user_agent=<user_agent>
Mayurifag commented 3 years ago

Тоже столкнулся с указанной проблемой после установки из AUR.

  1. Ввел $ vk_music_fs --get_token (кстати — рекомендую здесь пробел перед командой делать, во многих шеллах это не сохраняет команду в истории, дабы не светить там пароль)
  2. Открыл браузер с любым расширением на смену юзерагента, вбил туда тот, что по комменту выше, на момент написания этого комментария — KateMobileAndroid/40.4 lite-394 (Android 4.4.2; SDK 19; x86; unknown Android SDK built for x86; en)
  3. Перешел по ссылке из ответа апишки в редиректе — благодаря юзерагенту там было не «сессия устарела», а ввод кода из смс, ввел.
  4. В адресной строке получил access_token и user_id, токен использую далее.
  5. Сделал .ini файл (пробовал по-разному, с двойными кавычками и без, тут непонятно):
    ▲ cat ~/.config/VkMusicFs/VkMusicFs.ini 
    token=f7***********************************************************************************3
    user_agent=KateMobileAndroid/40.4 lite-394 (Android 4.4.2; SDK 19; x86; unknown Android SDK built for x86; en)
  6. Создал папку и по инструкции подмаунтил:
    ▲ ~ mkdir VkMusicFs
    ▲ ~ vk_music_fs ~/VkMusicFs
  7. В ~/VkMusicFs стало 4 новых директории, но все пустые. Не получается никак создать папку, ругается на пермишены, файлов тоже никаких нет.

Подумал что дело в пермишенах — но любые комбинации chown -R и chmod 777 не помогают. Подумал что в .ini что-то не так написал — но разные комбинации не решают проблему. Подумал что в домашней директории проблема, но из /mnt тот же результат На всякий случай ещё c root юзером попробовал — тоже не помогло. Не понимаю тоже где смотреть логи — journalctl отдает только сообщения с успешным mount

Что можно попробовать сделать?

vodka2 commented 3 years ago

@Mayurifag Не удобнее ли создать отдельный пароль? Это в Настройки -> Безопасность -> Пароли приложений в браузерном интерфейсе ВК. По-моему, проще, чем так подменять User-Agent расширением.

Насчёт пустых директорий. Попробуйте vk_music_fs ~/VkMusicFs --log_err_to_file 1 , лог будет по умолчанию в /home/username/.config/VkMusicFs/ErrorLog.txt. Ошибка с правами — стандартное сообщение, что что-то не так. Тоже стоит написать про это в README, хотя мне казалось, что это логично, как ещё сказать об ошибке файловому менеджеру. И ещё с опцией -d можно запустить: vk_music_fs ~/VkMusicFs -d, из терминала. На всякий случай, напишу, что у меня всё работает.

Mayurifag commented 3 years ago

Да, вот действительно через пересозданный токен с помощью генерированного пароля всё заработало, спасибо! А так — на токен ругалось.

Servail commented 9 months ago

С кодом приложения выдаёт:

terminate called after throwing an instance of 'nlohmann::detail::type_error'
  what():  [json.exception.type_error.302] type must be string, but is null
Aborted (core dumped)

Прикрыли лавочку?