Express контроллер не возвращает cookie - PullRequest
0 голосов
/ 29 апреля 2020

Этот фрагмент кода является частью Express маршрута для обработки логина пользователя. Все идет хорошо, но ответ никогда не возвращается. Console.log перед оператором return возвращает токен, так что я знаю, что jwt правильно подписывает токен, а все остальное до этого работает нормально. Но между консолью и оператором возврата ответ просто зависает, и функция отключается. Есть идеи, почему это происходит?

User.findOne({ email }, { _id: 1, name: 1 })
    .then(user => {
        jwt.sign({
            _id: user._id,
            name: user.name
        }, authSecret, { expiresIn: "3d" }, (err, token) => {
            if(err) return res.status(500).json({ message: err.message });

            console.log(`Token signed: ${token}`);

            return res.status(201).cookie("accessToken", token, {
                httpOnly: true,
                maxAge: 3*24*60*60*1000,
                signed: true,
                secure: true
            });
        });
    })

1 Ответ

1 голос
/ 29 апреля 2020

.status и .cookie просто подготовить ответ для отправки. Вам нужно позвонить .send или хотя бы .end, чтобы на самом деле отправить ответ.

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