Каков наилучший способ отправки информации о паспортном паспорте из задней части интерфейса?Данные сеанса паспорта JS в Angular2
Мое приложение, которое работает на порте 3000. Первые два запроса для входа в Facebook и перенаправления. Затем один, чтобы получить данные пользователя из базы данных (идентификатор пользователя должен быть сохранен в req.user
)
routes.js:
app.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' }));
app.get('/auth/facebook/callback',
passport.authenticate('facebook', {
successRedirect : 'http://localhost:8000/',
failureRedirect : '/fail'
})
);
app.get('/auth/userdata', isLoggedIn, function(req, res) {
Donator.findById(req.user, function(err, fulluser) {
if (err) throw err;
res.json(fulluser);
})
});
function isLoggedIn(req, res, next) {
if (req.isAuthenticated()) {
next();
} else {
res.json(false);
}
};
паспорт config.js
'facebookAuth' : {
'clientID' : 'secret',
'clientSecret' : 'secret',
'callbackURL' : 'http://localhost:3000/auth/facebook/callback'
},
Так что в моем приложении Angular2 Я могу перейти на http://localhost:3000/auth/facebook
, перенаправить на страницу входа в FB и, если успех перенаправлен на http://localhost:3000/auth/login/callback
, который приведет меня к http://localhost:8000/
.
И в моем приложении Angular2, который работает на порту 8000
getUser(){
this.http.get('http://localhost:3000/auth/userdata')
.map(res => return res.json())
}
EVERYTIME getUser()
называется, она возвращает 'ложь'. Есть ли простой и безопасный способ «вставить» данные сеанса в мой интерфейс на другом порту? Также, когда я иду http://localhost:3000/auth/userdata
в браузере, я вижу этот профиль, отображаемый как JSON.
Когда я устанавливаю backend и интерфейс на том же порту, он работает, facebook, твиттер, google, локальный, все в порядке, а getUser
возвращает полный профиль пользователя.
Надеюсь, это ясно.
Почему вы не обслуживаете приложение angular2 на порту '3000'? –
Я бы хотел, чтобы на конец хоста был включен внешний интерфейс на отдельных хостах. – dmh126
Я предлагаю запустить все на одном порту. Вы можете иметь два сервера на разных портах, но прокси-сервер один из них, используя [express-http-proxy] (https://www.npmjs.com/package/express-http-proxy). –