Node.js Express res.cookie未在客户端设置cookie
我正在尝试通过仅http cookies配置JWTNode.js Express res.cookie未在客户端设置cookie,node.js,express,cookies,samesite,Node.js,Express,Cookies,Samesite,我正在尝试通过仅http cookies配置JWT const signIn = async (req, res) => { const { email } = req.body; try { const user = await User.findOne({ email }); const access_token = jwt.sign({ id: user._id }, jwtSecret, { expiresIn: token_expiry_tim
const signIn = async (req, res) => {
const { email } = req.body;
try {
const user = await User.findOne({ email });
const access_token = jwt.sign({ id: user._id }, jwtSecret, {
expiresIn: token_expiry_time,
});
const refresh_token = jwt.sign({ id: user._id }, jwtRefreshSecret, {
expiresIn: refresh_token_expiry_time,
});
res.cookie('access_token', access_token, { httpOnly: true });
res.cookie('refresh_token', refresh_token, { httpOnly: true });
return res.status(200).json({
status: true,
data: {
user: {
id: user._id,
},
},
});
} catch (err) {
Server.serverError(res, err);
}
};
但在客户端,它拒绝在浏览器中设置cookie,它返回错误“无法设置cookie,因为同一站点不是‘无’”,在服务器端设置sameSite:‘无’
后,它给出错误“同一站点设置为‘无’需要有一个‘安全’字段”,然后我在后端设置了secure:true
,但它不起作用,因为我没有使用https进行开发
客户端代码
const onSubmit = (cred) => {
setLoading(true);
restAPI
.post('auth/signin', cred)
.then(({ data }) => {
setLoading(false);
setError(false);
console.log(data.data);
})
.catch((err) => {
setLoading(false);
setError({
status: true,
message: err.response.data.message,
});
});
};
我如何解决这个问题?请分享客户端的代码,特别是对signIn methoddone@BENARDPatrickHmm的api调用,您的restApi使用哪个库完成?