Angular如何实现OAuth

时间:2019-01-29 14:40:38

标签: javascript angular oauth

我有一个Angular应用,它使用websocket连接与服务器交互。现在,我需要在第三方服务中实现OAuth,但是我无法处理通过window.open(url)打开的新标签上的任何事件。

OAuth API将窗口重定向到我的域,并在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 :(得分:1)

这可能是一种方法:


     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); })