Веб-расширение Safari Войти с помощью Google
Safari теперь может использовать веб-расширения.
Но
browser.identity
или же
chrome.identity
не поддерживается. Так
launchWebAuthFlow
не работает.
В документах так и сказано.
личность Не поддерживается. На новой вкладке инициируйте поток OAuth.
Как мне это сделать? Есть какой-нибудь пример?
1 ответ
В настоящее время кажется невозможным реализовать поток OAuth в веб-расширении Safari.
Существует ветка разработчиков Apple, в которой есть обходной путь, включающий перенаправление на случайный URL-адрес и перехват его в , но, похоже, с Safari 15.4 он не работает: https://developer.apple.com/forums/thread/670165
2021:
В качестве обходного пути вы можете использовать любой доступный URL-адрес в качестве URL-адреса перенаправления OAuth и использовать
webRequest.onBeforeRedirect
для захвата попытки перенаправления и «принудительного перенаправления», например, с помощью tabs.update.
2023:
The
webRequest
API недоступен для непостоянных фоновых страниц (или сервис-воркеров), а версия 3 запрещает постоянные фоновые страницы.declarativeNetRequest
позволяет перенаправить на путь в вашем расширении, но по этому маршруту исходный запрос недоступен. Обходным решением этой проблемы является перенаправление с использованием regexSubstitution. Это отлично работает в Chrome, но не в Safari, поскольку перенаправление на safari-web-extension:// заблокировано.
ОП создал отчет об ошибках Webkit, который может оказаться полезным: https://bugs.webkit.org/show_bug.cgi?id=256054 .
Ошибка: перенаправление на URL-адрес со схемой, отличной от HTTP(S).