Я разделил свое приложение на 3-шинную структуру. Мой сервер работает на node.js, а front end - это угловое приложение. Я использую паспорт для входа пользователя и проверки подлинности. Поведение, которое я заметил, - это мой вход в паспорт, который не может поддерживать сеанс междоменной сессии в интерфейсном приложении.
Мой сервер работает на localhost: 3000 и в интерфейсе на локальном хосте: 9000.
Я пытаюсь настроить запрос CROS в экспресс, указав параметры как:
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Credentials', true);
res.header('Access-Control-Allow-Origin', req.headers.origin);
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept');
if ('OPTIONS' == req.method) {
res.send(200);
} else {
next();
}
});
также попробуйте модуль cros в nodeJs, но ничто не работает для меня как такового. Любая помощь или предложение приветствуются.
Вы должны использовать csurf для предотвращения перекрестного домена.
Всякий раз, когда вы запрашиваете какую-либо страницу, например, если вы запрашиваете страницу входа с сервера на тот момент, сервер посылает токен этому запросу, и вам нужно установить форму со скрытым полем и при отправке этой формы серверу на стороне сервера проверьте этот токен.
CROS! = CORS
https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
CORS используется для разрешения запросов только из определенного домена, то есть req.headers.origin
Для поддержания сеанса вам необходимо настроить приложение frontend с паспортом.