ExpressJS другое доменное имя - CORS - PullRequest
0 голосов
/ 07 января 2019

У меня возникла проблема с настройкой домена для файла cookie, который я отправляю с ответом от моей реализации expressjs, но в настоящее время он только устанавливает IP-адрес, на котором находится мой сервер expressjs (конечная точка).

Вот моя начальная конфигурация CORS;

router.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost:3000");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, 
Content-Type, Accept, pwd, email");
next();
});

Вот моя строка res.cookie внутри моей части аутентификации;

 res.cookie('token', token, {domain: "localhost", expires: new 
 Date(Date.now() + 600000*100000), httpOnly: true});

Когда я вхожу, используя chrome, как ни странно, я получаю cookie, но под IP-адресом моей конечной точки expressjs, скажем "http://88.13.91.0", поэтому, когда я обновляюсь, я теряю его. Я также не вижу в ответе для expressjs api заголовок «set-cookie» в ответе, но я получаю cookie. Я очистил cookie, чтобы убедиться, что он приходит после попытки входа в систему, поэтому я знаю, что он не устарел. У меня также есть в моей выборке вызвать «учетные данные», установленный на «включить», как задокументировано, но не повезло.

У меня вопрос: не могу ли я установить домен, если он не совпадает с конечной точкой? Я думаю, что, возможно, это проблема безопасности, и в результате она заблокирована, потому что никто не сможет установить cookie для домена, который не существует, или, возможно, я ошибаюсь.

1 Ответ

0 голосов
/ 07 января 2019

Попробуйте CORS вот так и

import * as cors from "cors"; 

// или

const cors = require ('cors');
    app.get("/", function (req, res) {
      res.setHeader("Content-Type", "application/x-www-form-urlencoded");
      res.setHeader("Access-Control-Allow-Origin", "*");
      res.setHeader(
        "Access-Control-Allow-Headers",
        "Origin, X-Requested-With, Content-Type, Accept"
      );

      res.setHeader("Access-Control-Allow-Credentials", true);

добавьте это, прежде всего, ваше промежуточное ПО

app.use(cors());
...