Res.cookie не работает, чтобы сохранить куки в браузере - PullRequest
0 голосов
/ 17 апреля 2019

Я работаю над полным стеком проекта.И я не могу установить cookie в моем браузере.

  • Мой бэкэнд написан с помощью node.js и экспресс-фреймворка, работающего на localhost: 3002.
  • Мой интерфейс использует реаги.js, работает на локальном хосте: 3000.
//server side
app.use(cookieParser());
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(cors());
.....
.....
router.post('/login', (req, res) => {

    User.findOne({'email': req.body.email}, (err, user) => {
        // find the email
        if (!user) return res.status(404).json({loginSuccess: false, message: 'Auth failed, email not found!'});

        // check the password
        user.comparePassword(req.body.password, (err, isMatch) => {
            if (!isMatch) return res.status(400).json({loginSuccess: false, message: 'Wrong password!'});

            // generate a token
            user.generateToken((err, user) => {
                if (err) return res.status(400).send(err);
                res.cookie('w_auth', user.token,  { domain: 'http://localhost:3000', secure: true }).status(200).json({loginSuccess: true, user: user});
                console.log(res);
            })
        })
    })
});

//client side
export const loginUser = (dataToSubmit, history) => dispatch => {

    axios.post(`${USER_SERVER}/login`,dataToSubmit)
        .then(resposne => {

            dispatch({
                type: actionTypes.LOGIN_USER,
                payload: resposne.data
            });
            history.push('/user/dashboard');
        })
        .catch(err => dispatch({
            type: actionTypes.GET_ERRORS,
            payload: err.response.data
        }));
};

Заголовок ответа для / api / users / login route содержит

'Set-Cookie':'w_auth=eyJhbGciOiJIUzI1NiJ9.N...

, но cookie не существуетСохранено в браузере (document.cookie пусто).

Тем временем я пытался использовать Postman для отправки запроса на публикацию в / api / users / login, и я нашел cookie в Cookies Postman.Поэтому я думаю, что браузер отказывается сохранять куки.

Кто-нибудь может помочь решить эту проблему?

1 Ответ

0 голосов
/ 17 апреля 2019

Если для параметра secure установлено значение true, файл cookie должен передаваться через соединение HTTPS, в противном случае файл cookie не передается

https://www.owasp.org/index.php/SecureFlag

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