Моя цель - вызвать мой экспресс-сервер 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>
`)
});