У меня проблема с настройкой файлов cookie в браузере. Я написал приложение ExpressJS с API и пытаюсь сделать хорошо работающий сайт в браузере. Но почему-то в браузере не могу установить cook ie. Я использую этот же код в API, и там все работает правильно. У меня были проблемы с CORS, но я добавил только одну строку кода, и ошибка исчезла, но я все еще не могу установить cook ie. Работал несколько дней go. Я ничего не делал. Я не изменил ни одной строчки кода, и сегодня у меня проблема, которой у меня не было.
Я добавил это промежуточное ПО в приложение. js file:
const cors = require('cors');
app.use(
cors({
credentials: true,
origin: 'http://localhost:3000'
})
);
Кроме того, я попытался добавить заголовки:
app.use(
cors({
credentials: true,
origin: 'http://localhost:3000'
})
);
app.use(function(req, res, next) {
res.header('Access-Control-Allow-Origin', 'http://localhost:3000');
res.header('Access-Control-Allow-Credentials', true);
res.header(
'Access-Control-Allow-Headers',
'Origin, X-Requested-With, Content-Type, Accept, Authentication'
);
next();
});
Я использую Ax ios для подключения к API, и у меня есть этот код в Ax ios блок try:
const res = await axios({
method: 'POST',
url: 'http://127.0.0.1:3000/api/users/login',
withCredentials: true,
data: {
email,
password
}
});
Это вот как я создаю cook ie в контроллере аутентификации:
const createSendToken = (user, statusCode, res) => {
const token = signToken(user._id);
const cookieOptions = {
expires: new Date(
Date.now() + process.env.JWT_COOKIE_EXPIRES_IN * 24 * 60 * 60 * 1000),
httpOnly: true
};
res.cookie('jwt', token, cookieOptions);
user.password = undefined;
res.status(statusCode).json({
status: 'success',
token,
data: {
user
}
});
};
Я просто вызываю эту функцию в функции входа
Библиотека CORS и заголовки не решают мою проблему. Пожалуйста, помогите мне ...