LINUX.ORG.RU

OAuth 2.0 standalone app боль поп\r\r\rголове ★★★★★

 , , ,


1

3

Пам-парам-пам:

OAuth 2.0: 1-клиент отсылает запрос на сервер с параметрами
             для доступа к данным пользователя с redirect_uri
             на который в последствие будет перенаправлен
             пользователь и выдан токен в теле адресной строки

           2-сервер выдаёт страницу подтверждения для
             пользователя принимает ли он условия которые
             приложение запрашивае, он тыкает кнопку "да"

           3.0-<счастье> 
                 redirect_uri можно указать localhost и путём 
                 временного поднятия микро http сервера
                 получить токен, всё в рамках простокола OAuth,
                 приложение использует любой дефолтный браузер
                 для аутентификации пользователя и получения токена
              </счастье>

           3.1-<боль>
                  для доступа к личным данным тоесть scope=messages
                  необходимо всё тоже самое за исключением того
                  что redirect_uri обязательно должен быть вида
                  https://oauth.vk.com/blank.html где подразумевается
                  что ВСТРОЕННЫЙ В ПРИЛОЖЕНИЕ БРАУЗЕР!!1$1! должен
                  перехватить страницу редиректа и извлечь токен
                  что естественно прозрачно не прокатит с рандомным 
                  браузером. И вообще никакого webUI встроенного нет фуфуфу.
                </боль>
                Ауенно глядь, муа муа мон мезами, шерше эля раков на горе 

  • - Если подумать то можно обойти притворившись браузером https клиент / парсинг html / отправка POST вроде всё клёво но тут затык суть OAuth теряется, можно хочет он или нет запросить любые права и нажать да автоматически - плохо нииихачу я так.
  • - Если ещё подумать то можно запустиь авторизацию в iframe и из root окна получить в последствии url iframe c токеном, но и тут затык vk видит что он в iframe и делает моментально редирект в никуда, то есть даже проверить идею с iframe не получается.

И так что я хочу? А ничего особенного провести OAuth аутентификацию
посредством дефолтного браузера пользователя и получить токен, а именно
адресную строку в итоге https://oauth.vk.com/blank.html#блабляблаksdajfhklsdjfhlksdfhjsdklfjh
Есть у кого какие идеи? Любые, или всё же мне придётся притвориться браузером?
Собственно без запроса прав на messages я использую браузер пользователя,
который у него по умолчанию, тут проблем нет так как я имею возможность задать
редирект с токеном как сказал выше на localhost https://github.com/fedor-elizarov/vktray
Уж точно чего я не буду делать это тащить webkit-dev библиотеки в зависимости
для одноразового запроса авторизации. Всяки хаки приветсвуются :D

★★★★★

Ответ на: комментарий от Weres

Хехе, не, просто мне так нравиться :D я их последнее время повсюду пихаю, это рюшечки неважные, по делу идеи есть?

Dron ★★★★★ ()

Вставь в программу инструкцию для пользователя, мол авторизуйся и скопируй url сюда (в твою программу).

anonymous ()
Ответ на: комментарий от anonymous

Это слишком легко и неудобно и не красиво, самый крайний случай к которому я прибегну. Я хочу нормальной и удобной авторизации пользователя и нормального получения токена программой без попипасты. Хотя твой вариант даже в суппорте вк советуют, что странно.

Dron ★★★★★ ()
Последнее исправление: Dron (всего исправлений: 1)
Ответ на: комментарий от Dron

Ну тогда ты обречён на таскание с собой браузера в той или иной форме либо ненадежные хачки типа послать активному окну ctrl+l, ctrl+c

anonymous ()
Ответ на: комментарий от anonymous

Меня всё больше нравиться идея с iframe, но нужно как то обмануть vk что бы он думал что он root окно в браузере, пока не знаю как.

Dron ★★★★★ ()
Ответ на: комментарий от Dron

А мне больше нравится быть президентом мира, но нужно как-то обмануть весь мир, чтобы он думал, что я президент, пока не знаю как.

anonymous ()
Ответ на: комментарий от anonymous

::) aй да и ладно, webkit сейчас повсюду предустановлен уже, лучше сделаю 2 варианта сборки с ним и без него, с автоматическим получением токена или ручной копипастой в конфиг.

Dron ★★★★★ ()
Последнее исправление: Dron (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.