Я работаю над полным стеком проекта.И я не могу установить 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.Поэтому я думаю, что браузер отказывается сохранять куки.
Кто-нибудь может помочь решить эту проблему?