Используя angular-cli для разработки angular,
ng serve
на порте 4200 node server.js
на порте 3000
Я хочу войти, используя страницу экспресс-входа.
Поскольку cookie и сеанс зависят от домена.Поскольку порты разные, я могу войти через порт 3000 на экспресс-странице, так как все входы выполняются на экспресс-странице.
Как я могу использовать угловое приложение?
Expressjs не сможет получать в приложении и сессию, и cookie через XHR.
Так что посещение одного и того же localhost:3000/api/user
route
В угловом режиме это XHR-удар, выполненный редирект 302, как не зарегистрированный пользователь. Но, посетив его напрямую, это 200.
app.use(session({
secret: 'somerandonstuffs',
resave: true,
saveUninitialized: false,
cookie: { maxAge: 60 * 1000, httpOnly: true }
}));
const authUser = (req, res, next) => {
if (req.session.user && req.cookies['connect.sid']) {
next();
} else {
res.redirect(config.serverHost + '/login');
}
};
app.route('/login')
.get((req, res) => {
res.sendFile(__dirname + '/views/login.html');
})
.post((req, res) => {
req.session.user = {
id: 'x@x.x'
};
res.redirect(config.clientHost);
}
});
app.all('/*', authUser, function (req, res, next) {
next();
});
На самом деле, по крайней мере, кто-то может сказать мнеможет ли общий домен (порт) вообще работать с таким подходом?