Author Topic: ВК - как авторизовать миранду на их сервере?  (Read 9979 times)

0 Members and 1 Guest are viewing this topic.

Offline -SM-

MRA может себе затягивать что угодно, их говнокод не пример для подражания
Речь идет не о втягивания говнокодов в ядро откуда либо, а о реализации OAuth как стандартного способа аутентификации в виде плагина, который каждый, которому это нужно, может поставить, не влияя на остальную миранду. А какие там браузероподобности будут притащены - не важно, это плагин. То есть, на усмотрение разработчика. Задача OAuth - получить токен, она разовая. Дальше с этим токеном можно работать долго, и очень долго.
« Last Edit: 27 06 2024, 19:31:49 by -SM- »
 

Offline Elzor

Не, в ВК как-то обходится без копирований пользователем токенов, там некое спец-апи.
Во-первых, да, есть апи. Во-вторых, внутри ВК-плагина сидит маленький самописный парсер страниц авторизации, этакий микро-браузер :) И чтобы получить статическую страницу с полями для авторизации, приходится прикидываться устаревшим браузером, поддержку которого вк официально отстрелила еще несколько лет назад. В любой момент авторизация может отвалиться, если его поддержку отстрелят и фактически тоже или если поменяют страницу авторизации, что случалось уже бесчисленное количество раз. Возможно тогда придется тоже копировать токен, поскольку вк по факту не дает возможность цивилизовано его получить в стороннем десктопном приложении.
Речь идет не о втягивания говнокодов в ядро откуда либо, а о реализации OAuth как стандартного способа аутентификации в виде плагина, который каждый, которому это нужно, может поставить, не влияя на остальную миранду. А какие там браузероподобности будут притащены - не важно, это плагин.
На самом деле там все не просто. На примере того же ВК: у меня есть еще один пет-проект, который работает с вк апи. Чтобы авторизоваться, пришлось затаскивать в него WebView2 и для работы он требует Среду выполнения Microsoft Edge WebView2 Runtime - то есть по сути отдельного почти полноценного браузера, который пользователь еще и руками должен поставить (294 Mb, между прочим). Но WebView2 для C# с его .Net хотя бы есть, у нас же тут голый WinAPI, под него что-то подобного, насколько я знаю нет. Не то чтобы не было иных альтернатив WebView2, но они еще хуже. Нет, безусловно, если вк перекроют кислород с текущим способом авториpации, я возможно отдельно нарисую приложение на C#, которое только и будет что авторизовывать и передавать токен в вк-плагин (в принципе, наверное, такое приложение можно сделать универсальным для всяких MRA, FB и тд, но это не точно), но оно будет крайне тяжеловесным, противоречить всей идеологии проекта миранды и вряд ли станет его частью.
 

Offline -SM-

но оно будет крайне тяжеловесным, противоречить всей идеологии проекта миранды и вряд ли станет его частью.
Если оно будет плагином - да пусть там хоть  весь хромиум сидит, кому это надо - выкачает и поставит. Кому не надо - будет пользоваться мирандой без OAuth и протоколов, которым он необходим. А их, думаю, скоро станет... Все...

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

отличная идея! Особенно, если оно сработает и для MRA.
« Last Edit: 28 06 2024, 07:42:36 by -SM- »
 

Offline Apollo2k4

Если оно будет плагином - да пусть там хоть  весь хромиум сидит, кому это надо - выкачает и поставит.
Microsoft Edge WebView2 Runtime как бы и есть целиком Chromium с привкусом только без головы. Не то чтобы я против, но втягивание WebView2 сильно проблему не решит т.к. я думаю в ближайшее время там останется поддержка только Win 10/11. И главное тягать бандл который размеров в два раза больше чем вся сборка миранды с отладочными символами – так себе затея. Плюс это автоматически сломает всё что не Windows.
И вспомнилось когда появился первый плагин для Skype который использовал SkypeKit и протянул не очень долго, и он весил аж целых 5Мб, народ был слегка в недоумении первое время.
«Все глупости совершаются с серьёзным выражением лица» © Кён «Меланхолия Сузумии Харухи»

Правильно заданный вопрос – 50% решения.
Правила постинга
 

Offline -SM-

и он весил аж целых 5Мб, народ был слегка в недоумении первое время.
Ну во первых - времена изменились, памяти сейчас у всех полно. Если раньше 5 мбайт было "ужас", то сейчас 500 мбайт не страшно. Но, главное, во вторых, об этом можно предупредить - что "вот это" доступно только для таких ОС и имеет большой размер. Я уверен - это устроит подавляющее большинство, кому без этого просто никак.

Плюс это автоматически сломает всё что не Windows.
Каким образом, если это плагин? Просто его не будет для невиндовсов. А если это вообще отдельная программа, которая может запускаться мирандой с целью аутентификации, так и тем более.
« Last Edit: 28 06 2024, 16:33:24 by -SM- »
 

Offline Apollo2k4

Каким образом, если это плагин? Просто его не будет для невиндовсов.
Попробуйте как-то на досуге поупражняться с мирандой в WINE – многие вопросы отпадут сами собой.
«Все глупости совершаются с серьёзным выражением лица» © Кён «Меланхолия Сузумии Харухи»

Правильно заданный вопрос – 50% решения.
Правила постинга
 

Offline -SM-

Попробуйте как-то на досуге поупражняться с мирандой в WINE
Я просто не буду ставить этот плагин в несовместимом окружении. Зачем с этим упражняться, если это заведомо не работает?
 

Offline -SM-

А вот такой вопрос. Ведь имеется RFC8628. ВК его поддерживает? А MRA?
Если поддерживает, то реализовать браузер в приложении не нужно. RFC8628 предполагает, что приложение поллит сервер аутентификации для получения токена, а юзер при этом проходит аутентификацию через системный браузер, установленный по умолчанию. Если это прокатит, то реализация OAuth 2.0 в миранде выйдет легковесной.