launchWebFlow в расширении Firefox закрывает окно расширения при всплывающем окне oauth2

#javascript #firefox-addon-webextensions

#javascript #firefox-дополнение-webextensions

Вопрос:

Итак, я столкнулся с интересной проблемой и хотел бы получить некоторые мнения. Итак, у меня есть расширение Chrome, которое я переношу на расширение Firefox. Все работает идеально, кроме этой глупой проблемы, с которой я сталкиваюсь. В принципе, когда я запускаю launchWebAuthFlow, окно oauth2 появляется, как и должно, но по какой-то причине в Firefox оно закрывает окно расширения при открытии всплывающего окна oauth2, что полностью аннулирует процесс входа в систему, поскольку расширение закрыто. В Chrome при открытии страницы oauth2 окно расширения по-прежнему остается открытым, но в Firefox оно немедленно закрывается. Похоже, это потому, что в Firefox они открывают страницу oauth2 в совершенно новом окне Firefox вместо приятного маленького всплывающего окна Chrome. У кого-нибудь есть опыт работы с этой проблемой и, возможно, есть исправление или обходной путь? Я действительно не думаю, что мне нужно прикреплять к этому код, но я сделаю это для lol.

     chrome.identity.launchWebAuthFlow(
        { url: auth_url, interactive: true },
        function (redirect_url) {

  

Комментарии:

1. здесь та же проблема. Вы нашли решение?

2. @andrea.spot. да, я нашел решение, дайте мне немного, и я отвечу на эти вопросы своим решением, когда у меня будет несколько минут.

3. Есть какие-либо обновления по этому поводу? Столкнулся с той же проблемой.

4. Можете ли вы дать фрагмент о том, как вы это сделали? Я сталкиваюсь с той же проблемой, не могу получить токен после авторизации пользователя, потому что он закрывается..

5. Да, я сделал, в основном я переместил вызов launcWebAuthFlow в фоновый скрипт. Для этого я использовал этот репозиторий github.com/mozilla/webextension-polyfill у него есть обратные стороны. Если вам нужен реальный пример, вот мой github.com/PedroS11/twitch-live-extension/blob/master/src/… Хранилище отправляет сообщение сценарию backgorund для токена (метод fetchToken), а затем просто возвращает его, надеюсь, это поможет вам