Cookies在失眠应用程序中保存和工作得很好,但它们在我的react应用程序中不起作用



我有一个登录页面和一个注册页面。当我从前端表单注册一个用户时,它会创建一个新用户。但当我尝试登录用户时,我得到200状态和我的数据,但我猜它没有设置cookie。当我试图去一个受保护的路由,只有一个登录的用户可以访问,我得到的错误,我从后端这是"你是未经认证的"。我如何在前端发送或设置cookie ?失眠应用程序一切正常,cookie设置好了。

这是我如何使登录后请求

const submit = async (e) => {
e.preventDefault();
const data = { username, password };
try {
await axios.post(path, data).then((res) => {
console.log(res);
});
} catch (err) {
setLoading(false);
setError(err.message);
}

这是服务器端的登录控制器。

const login = async (req, res) => {
try {
const oneUser = await Users.findOne({ username: req.body.username });
if (!oneUser) {
return res.status(403).json("No such user in the database");
}
const isPassword = bcryptjs.compare(req.body.password, oneUser.password);
if (!isPassword) {
return res.status(500).json(`${req.body.username} Password is incorrect`);
}
const token = jwt.sign(
{
id: oneUser._id,
isAdmin: oneUser.isAdmin,
},
process.env.jwt
);
const { password, ...others } = oneUser._doc;
res
.cookie("access_token", token, {
httpOnly: true,
})
.status(200)
.json({ ...others });
} catch (err) {
res.status(500).json(err);
}
};

最新更新