Проблема с файлами cookie и CORS в Espress JS (Node.js) - PullRequest
0 голосов
/ 08 мая 2020

У меня проблема с настройкой файлов 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 и заголовки не решают мою проблему. Пожалуйста, помогите мне ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...