OAuth2 со строкой запроса Ha sh, Imgur API - PullRequest
0 голосов
/ 30 января 2020

Я обновляю свое настольное приложение, клиент Imgur, для предстоящего устаревания методов проверки кода / пин-кода, используя локальный веб-сервер для перехвата redirect_url из браузера после того, как пользователь авторизует доступ к приложению. Поэтому я запускаю URL в браузере, пользователь принимает, а затем Imgur перенаправляет на

http://localhost: 7710 / myapp? State = auth # access_token = .... & expires_in = et c

, но браузер обрезает URL на #, поэтому все переменные отсутствуют, и мое приложение получает только «state = auth»

из документов API Imgur :

Маркер параметра response_type: Этот поток авторизации будет напрямую возвращать access_token и refresh_token через URL-адрес перенаправления, указанный вами при регистрации, в виде параметров строки запроса ha sh. Пример: http://example.com#access_token = ACCESS_TOKEN & token_type = Bearer & expires_in = 3600

Типы ответов кода и вывода устарели и вскоре больше не поддерживаются.

Imgur возвращает доступ токен для вашего приложения, если пользователь предоставит вашему приложению запрошенные разрешения. Токен доступа возвращается вашему приложению во фрагменте как часть параметра access_token. Поскольку фрагмент (часть URL после #) не отправляется на сервер, клиентская сторона javascript должна проанализировать фрагмент и извлечь значение параметра access_token.

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

1 Ответ

1 голос
/ 30 января 2020

Imgur вещи выглядят нестандартно, так как response_type = token является базовой c версией неявного потока, который раньше был решением для одностраничных страниц.

В наши дни все потоки на основе пользовательского интерфейса должны использовать Поток кодов авторизации (PKCE) и response_type = code.

Поскольку ваше приложение работает как (зацикленный) веб-сервер, оно не получит параметры фрагмента ha sh, которые доступны только для кода JavaScript работает в браузере.

Одним из вариантов, который позволит вам получить полный URL-адрес, будет вход в систему через системный браузер и использование частной схемы URI для обратного вызова приложения.

Приведенная выше ссылка представляет собой визуальное сообщение в блоге, объясняющее, как это работает, в случае, если оно представляет интерес.

...