Как вернуть коллбек OpenID (NodeJS + Angular)
На бэкенде (node) реализована авторизация с помощью passport (passport-steam). Как из фронтенд (angular) вызвать страницу авторизации, но так чтобы бы можно было получить ответ. Если делать обычным способом $http.get('/auth/steam), то ошибка, так как Стим должен открываться во вкладке браузера. Но если сделать так: window.location.url = auth/steam, то страница авторизации (Стима) открывается. Но как вернуть результат, что авторизация прошла успешно, когда по GET передаются токены (ответ) обратно сайту, ведь сайт как бы закрывается и связь прерывается, когда во вкладке открывается другой сайт?
Изначальная проблема в том, что нужно отследить что авторизация прошла и res.redirect('/'), но естественно, он не сработает, так как только в фронтенд можно делать переадресацию. Думал это сделать с помощью socket.io на клиенте функция onAuth() и она вызывается, когда пришел ответ OpenID, и уже делает редирект куда нужно. Но это костыль, как мне кажется. Не держать же постоянно конект, только для этого. Помогите, уже неделю с этим мучаюсь, что только не гуглил уже.
|