2015-05-29 3 views
0

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


    module.exports = function(app) { 
     return function(req, res, next) { 
     if (req.cookies.user_token) { 
      req.session.cookie.httpOnly = false 
      res.cookie('user_token', req.cookies.user_token, { domain: 'www.example.com', httpOnly: false, path: '/', maxAge: 900000 }); 
     } 
     return res.redirect('https://www.example.com/index.jsp?other_stuff=value'); 
     } 
    } 

Я вижу, как вызывается запрос, и что cookie НЕ устанавливается. Я прошел через отладчик, и я точно знаю, что код получает удар.

Я нашел этот вопрос:

How to set cookie in node js using express framework?

Основываясь на том, что я пытался дозвониться var express = require('express'); app.use(express.cookieParser()); ранее в коде, но это, похоже, не имеет никакого значения.

У кого-нибудь есть идеи, в которых я ошибаюсь?

+0

С 'if (req.cookies.user_token) {' обертывает код, который устанавливает файл cookie, похоже, что вы проверяете, существует ли файл cookie перед его настройкой. Поэтому он никогда не создается. – Trott

+0

@ Тротт: Нет. Я ищу, чтобы увидеть, существует ли этот файл cookie для страницы, на которой я уже включен; если это так, я хочу, чтобы он воссоздан для страницы, на которую я собираюсь. Я на 100% уверен, что res.cookie получает вызов; Я перехожу к нему с помощью отладчика. – BlairHippo

+1

И страница, на которую вы перенаправляетесь, находится в том же домене, что и страница, задающая cookie? – Trott

ответ

1

Если перенаправленный домен (скажем, www.example.com) является (как указано в комментариях), отличным от домена, который пытается установить файл cookie (скажем, www.foo.io), то cookie не будет выполняться браузером.

Смежные вопросы