Miranda NG Official Community Forum

Miranda NG русскоязычный форум => Общие разговоры о Miranda NG => Topic started by: -SM- on 26 05 2024, 08:59:12

Title: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 26 05 2024, 08:59:12
Создал себе аккаунт в ВК. Там спросили номер телефона, имя-фамилию, ну и почту на всякий случай. Никаких паролей - только смска, все создалось, все вошлось. Поставил плагин VK в миранду, создал аккаунт. Там требуется номер телефона или емайл, и пароль. А пароля то нету! Видимо, один я такой тупой, что не понимаю, как настроить авторизацию миранды в ВК...
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: dartraiden on 26 05 2024, 12:11:50
На сайте сделайте себе пароль в настройках аккаунта.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 26 05 2024, 12:45:07
На сайте сделайте себе пароль в настройках аккаунта.
Так вот весь мозг сломал, как это сделать, не получается. Даже если сделать "восстановление пароля", то по факту происходит просто влогинивание по смс без создания пароля. Или надо 2FA включать для этого?
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: dartraiden on 26 05 2024, 12:46:41
Quote
Важно: если вы удалили пароль и хотите добавить его снова, необходимо сначала включить двухфакторную аутентификацию. Без этого пароль добавить не получится.

https://vk.com/faq18007
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 26 05 2024, 12:50:52
https://vk.com/faq18007
А с 2FA я смогу влогиниться в миранду то? А то ведь с подобной 2FA входа в MRA нету, а контора одна.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: dartraiden on 26 05 2024, 12:51:23
Да. У VK есть API для этого. У MRA нет.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 26 05 2024, 13:16:06
У VK есть API для этого. У MRA нет.
Ясно, спасибо.Ну апи-то у MRA явно есть, и десктопный клиент, и мобильный успешно коннектятся с запросом 4-х цифр. Видимо, расковырять его надо.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: Apollo2k4 on 27 06 2024, 17:52:51
Ну апи-то у MRA явно есть, и десктопный клиент, и мобильный успешно коннектятся с запросом 4-х цифр.
Эти методы могут быть не публичны
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 27 06 2024, 18:01:46
Эти методы могут быть не публичны
Этот вопрос саморазрешился. После логина в оф. клиенте MRA миранда тоже логинится без вопросов.
А MRA использует окно с ф-циями браузера для OAuth, что противоречит политическим взглядам миранды.
Итого - два варианта - ждать, когда остальные протоколы вынудят  поддержать OAutn в миранде, либо костылить аутентификацией через оф. клиент.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: Apollo2k4 on 27 06 2024, 18:07:38
А MRA использует окно с ф-циями браузера для OAuth, что противоречит политическим взглядам миранды.
Архитектурным, тянуть браузер в ядро так себе затея.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 27 06 2024, 18:09:17
тянуть браузер в ядро так себе затея
А хотите сказать, что MRA (оф. клиент) на пустом месте затянуло к себе полный браузер? ИМХО, там какое-то упрощенное окно для получения токена.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 27 06 2024, 18:13:17
тянуть браузер в ядро
И не обязательно в ядро, в теории можно сделать плагин для OAuth.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: Apollo2k4 on 27 06 2024, 18:17:34
-SM-, учитывая, что в ВК тоже есть авторизация через OAuth и там используется браузер по умолчанию, и копируется пользователем только полученный токен, для однообразия уж лучше так.
И не обязательно в ядро, в теории можно сделать плагин для OAuth.
Всё равно так себе затея, тянуть браузер в любом виде.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 27 06 2024, 18:24:55
и копируется пользователем только полученный токен
Не, в ВК как-то обходится без копирований пользователем токенов, там некое спец-апи.А для OAuth как раз логично сделать плагин с минимальной браузерной функциональностью, кому надо, тот  поставит.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: dartraiden on 27 06 2024, 18:36:16
MRA может себе затягивать что угодно, их говнокод не пример для подражания.

В качестве примера великолепных инженерных решений мыла - как устроен их старый клиент облачного диска: он внутри себя хранит две dll - расширения проводника (32 и 64 бит), при каждом запуске дропает их в %TEMP% и регистрирует. Отказаться от этого можно, лишь пропатчив клиент хекс-редактором: либо занулив первый байт каждой из dll, чтобы это перестали быть валидные dll и оно не смогло их регистрировать (что не помешает, впрочем, каждый запуск дропать их на диск), либо найдя функцию распаковки и влепив ей return в начало.

Этим приходится заниматься, потому что их новый клиент (Диск-О) ещё ужаснее.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 27 06 2024, 18:47:37
MRA может себе затягивать что угодно, их говнокод не пример для подражания
Речь идет не о втягивания говнокодов в ядро откуда либо, а о реализации OAuth как стандартного способа аутентификации в виде плагина, который каждый, которому это нужно, может поставить, не влияя на остальную миранду. А какие там браузероподобности будут притащены - не важно, это плагин. То есть, на усмотрение разработчика. Задача OAuth - получить токен, она разовая. Дальше с этим токеном можно работать долго, и очень долго.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: Elzor on 28 06 2024, 06:16:47
Не, в ВК как-то обходится без копирований пользователем токенов, там некое спец-апи.
Во-первых, да, есть апи. Во-вторых, внутри ВК-плагина сидит маленький самописный парсер страниц авторизации, этакий микро-браузер :) И чтобы получить статическую страницу с полями для авторизации, приходится прикидываться устаревшим браузером, поддержку которого вк официально отстрелила еще несколько лет назад. В любой момент авторизация может отвалиться, если его поддержку отстрелят и фактически тоже или если поменяют страницу авторизации, что случалось уже бесчисленное количество раз. Возможно тогда придется тоже копировать токен, поскольку вк по факту не дает возможность цивилизовано его получить в стороннем десктопном приложении.
Речь идет не о втягивания говнокодов в ядро откуда либо, а о реализации OAuth как стандартного способа аутентификации в виде плагина, который каждый, которому это нужно, может поставить, не влияя на остальную миранду. А какие там браузероподобности будут притащены - не важно, это плагин.
На самом деле там все не просто. На примере того же ВК: у меня есть еще один пет-проект, который работает с вк апи. Чтобы авторизоваться, пришлось затаскивать в него WebView2 и для работы он требует Среду выполнения Microsoft Edge WebView2 Runtime - то есть по сути отдельного почти полноценного браузера, который пользователь еще и руками должен поставить (294 Mb, между прочим). Но WebView2 для C# с его .Net хотя бы есть, у нас же тут голый WinAPI, под него что-то подобного, насколько я знаю нет. Не то чтобы не было иных альтернатив WebView2, но они еще хуже. Нет, безусловно, если вк перекроют кислород с текущим способом авториpации, я возможно отдельно нарисую приложение на C#, которое только и будет что авторизовывать и передавать токен в вк-плагин (в принципе, наверное, такое приложение можно сделать универсальным для всяких MRA, FB и тд, но это не точно), но оно будет крайне тяжеловесным, противоречить всей идеологии проекта миранды и вряд ли станет его частью.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 28 06 2024, 06:32:11
но оно будет крайне тяжеловесным, противоречить всей идеологии проекта миранды и вряд ли станет его частью.
Если оно будет плагином - да пусть там хоть  весь хромиум сидит, кому это надо - выкачает и поставит. Кому не надо - будет пользоваться мирандой без OAuth и протоколов, которым он необходим. А их, думаю, скоро станет... Все...

я возможно отдельно нарисую приложение на C#, которое только и будет что авторизовывать и передавать токен в вк-плагин (в принципе, наверное, такое приложение можно сделать универсальным для всяких MRA, FB и тд, но это не точно)

отличная идея! Особенно, если оно сработает и для MRA.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: Apollo2k4 on 28 06 2024, 16:05:10
Если оно будет плагином - да пусть там хоть  весь хромиум сидит, кому это надо - выкачает и поставит.
Microsoft Edge WebView2 Runtime как бы и есть целиком Chromium с привкусом только без головы. Не то чтобы я против, но втягивание WebView2 сильно проблему не решит т.к. я думаю в ближайшее время там останется поддержка только Win 10/11. И главное тягать бандл который размеров в два раза больше чем вся сборка миранды с отладочными символами – так себе затея. Плюс это автоматически сломает всё что не Windows.
И вспомнилось когда появился первый плагин для Skype который использовал SkypeKit и протянул не очень долго, и он весил аж целых 5Мб, народ был слегка в недоумении первое время.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 28 06 2024, 16:22:23
и он весил аж целых 5Мб, народ был слегка в недоумении первое время.
Ну во первых - времена изменились, памяти сейчас у всех полно. Если раньше 5 мбайт было "ужас", то сейчас 500 мбайт не страшно. Но, главное, во вторых, об этом можно предупредить - что "вот это" доступно только для таких ОС и имеет большой размер. Я уверен - это устроит подавляющее большинство, кому без этого просто никак.

Плюс это автоматически сломает всё что не Windows.
Каким образом, если это плагин? Просто его не будет для невиндовсов. А если это вообще отдельная программа, которая может запускаться мирандой с целью аутентификации, так и тем более.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: Apollo2k4 on 28 06 2024, 17:00:45
Каким образом, если это плагин? Просто его не будет для невиндовсов.
Попробуйте как-то на досуге поупражняться с мирандой в WINE – многие вопросы отпадут сами собой.
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 28 06 2024, 18:20:21
Попробуйте как-то на досуге поупражняться с мирандой в WINE
Я просто не буду ставить этот плагин в несовместимом окружении. Зачем с этим упражняться, если это заведомо не работает?
Title: Re: ВК - как авторизовать миранду на их сервере?
Post by: -SM- on 10 07 2024, 07:30:53
А вот такой вопрос. Ведь имеется RFC8628. ВК его поддерживает? А MRA?
Если поддерживает, то реализовать браузер в приложении не нужно. RFC8628 предполагает, что приложение поллит сервер аутентификации для получения токена, а юзер при этом проходит аутентификацию через системный браузер, установленный по умолчанию. Если это прокатит, то реализация OAuth 2.0 в миранде выйдет легковесной.