我有一个带有此简化 API 的 Node 应用程序,用于检查用户是否经过身份验证(通过 session ):
export default (req, res,) => {
if (!req.session || !req.session.loggedIn) {
return res.status(401).send();
}
return res.status(200).send();
};
在 Postman 中一切正常,但是当 React 客户端发出此请求时:
axios.get(`${domain}/is-auth`)
.then((res) => {
return res.status === 200;
})
.catch((err) => {
throw err;
});
...它总是得到 401 并返回 false。服务器看不到它的 session 。我正在阅读有关 cookie 的内容,但是 cookie 不是应该由浏览器自动保存和发送吗?如果不是那么我该怎么做?请帮忙。
最佳答案
fetch
和axios
实际上不会随请求自动发送凭据,您必须通过将“withCredentials”选项设置为 true 来指定它:
axios.get(`${domain}/is-auth`, { withCredentials: true })
.then((res) => {
return res.status === 200;
})
.catch((err) => {
throw err;
});
关于node.js - React 不保留或发送 cookie 到 Node?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57442931/