Angular, как реализовать OAuth - PullRequest
0 голосов
/ 29 января 2019

У меня есть приложение Angular, которое использует соединение websocket для взаимодействия с сервером.Теперь мне нужно реализовать OAuth в стороннем сервисе, однако я не могу обработать какие-либо события на новой вкладке, открытой через window.open(url).

. API OAuth перенаправляет окно в мой домен и возвращает токен в параметрах URL-запроса.Мне нужно поймать этот токен, чтобы работать с этим.Как это можно реализовать?


const eHealthWind = window.open(msg.data.url);
console.log(eHealthWind.window);
    eHealthWind.onload = function () {
    eHealthWind.onpopstate = function (e) {
        console.log('pop', e);
    };
};

1 Ответ

0 голосов
/ 29 января 2019

Это был бы возможный путь:


     const loggedInPromise = new Promise((res) => {
       const eHealthWind = window.open(msg.data.url);

        const intervalId = setInterval(function() {
          try {
            res(eHealthWind.location.href);
            clearInterval(intervalId);
            eHealthWind.close();
          } catch (error) {

          }
        }, 1000);
      })

      loggedInPromise.then((urlWithToken) => { console.log(urlWithToken); })


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...