vue js axios откройте новое окно и следите за обратным вызовом - PullRequest
0 голосов
/ 18 октября 2019

Моя цель - вызвать мой экспресс-сервер js, который открывает окно для аутентификации openid. После того, как я успешно прошел аутентификацию там. Я хочу закрыть это окно и посмотреть из моего приложения vue js на обратный вызов.

Это то, что я сделал до сих пор. Все, что я хочу, это то, что токен jwt в моем интерфейсе не только в моем бэкэнде.

Это моя функция хранилища vuex:

login({ commit } = {}) {

var loginWindow = window.open('http://localhost:3000/auth/steam', '_blank', 'width=800, height=600');
if (window.focus) {
  loginWindow.focus();
}

// return axios.get('http://localhost:3000/auth/steam',  { crossdomain: true }).then((authResponse) => {
//   console.log(authResponse)
//   return;
// }).catch((error) => {
//   console.log(error)
//   return null;
// });
},

И это мои функции exprss js:

app.get('/auth/steam', passport.authenticate('steam', { failureRedirect: '/' }), (req, res) => {
  res.redirect('/');
});

app.get('/auth/steam/return', passport.authenticate('steam', { failureRedirect: '/' }), (req, res) => {
  let token = jwt.sign({ user: req.user }, 'secret', { expiresIn: '2h' });

  console.log(jwt.decode(token));

  res.send(`
    <script>
      // window.opener.steamCallback({
      //   ok: true,
      //   token: '${token}'
      // });
      window.close();
    </script>
  `)
});
...