2

Когда вы создаете расширение Chrome и хотите использовать OAuth 2.0, вы можете использовать URL-адрес https://<app-id>.chromiumapp.org/* и, следовательно, иметь возможность напрямую удалять удаленные серверы непосредственно в вашем браузере (ранее ответили - например, https://stackoverflow.com/a/30613603/61239). Кто-нибудь знает или может теоретизировать, как это работает? И можете ли вы настроить таргетинг на любой запрос в своем браузере или это работает только для OAuth 2.0?Как перенаправлять расширение chromiumapp.org для Google Chrome?

ответ

3

Это обрабатывается WebAuthFlow class, цель которого заключается в следующем:

Учитывая провайдер URL, загрузить URL и выполнить обычную веб-навигации, пока не приводит к перенаправлению на правильный URL расширение переадресации. Поставщик может показать пользовательский интерфейс пользователю, если необходимо, перед перенаправлением на соответствующий URL-адрес.

Когда сервер инструктирует браузер для перенаправления на допустимый URL перенаправления расширения, что URL вместо этого передается функции обратного вызова, предоставленной chrome.identity.launchWebAuthFlow.

«соответствующий» URL жестко закодированы в web_auth_flow.cc:

static const char kChromeExtensionSchemeUrlPattern[] = 
    "chrome-extension://%s/"; 
static const char kChromiumDomainRedirectUrlPattern[] = 
    "https://%s.chromiumapp.org/"; 

Так специальный URL https://<app-id>.chromiumapp.org/* работает только в контексте WebAuthFlow в chrome.identity API. Обратите внимание, что механизм полностью встроен в Chrome. URL-адрес никогда не запрашивается.

+0

Тем не менее удаленный сервер может связаться с конкретным браузером во время потока OAuth. Мой вопрос был больше о том, как это работает (механизм, через который ваш браузер действует как «сервер» для удаленных конечных точек). –

+0

Серверы никогда не обращаются в браузер. Они отвечают только на запросы браузера. Один из этих ответов может быть перенаправлением. Когда перенаправление относится к URL-адресу «chromiumapp.org», завершается поток Auth. – rsanchez

+0

По этой причине я использовал «сервер» в кавычках;) И кроме того, есть SSE (https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events). Но я хочу сказать, что сервер OAuth попадает на этот «chromiumapp.org», верно? Как это переводится в браузер, получая информацию, которую сервер отправляет на этот URL? –

Смежные вопросы