node.js - 无法从 Node 获取 cookie 到 React
问题描述
我创建了一个简单的登录系统,在某些用户登录后端后,我使用 jwt 令牌值设置配置文件 cookie
res.cookie('profile',jwt_token,{
secure : false,
httpOnly : true
});
在 React 前端,我正在向 Node 后端发送一个 get 请求,我希望在其中获取该 jwt 令牌
const { data } = await axios.get('http://localhost:2000/users/test', {withCredentials:true});
这是我获取 cookie 的控制器
export const test = async (req,res) =>{
try {
const cookie = req.cookies.profile || "no cookie";
res.json(cookie);
} catch (error) {
console.log(error.message);
res.status(406).json({success:false});
}
};
当我在使用 Postman 登录后尝试获取 cookie 时,我得到了 cookie 值,但是当我尝试通过 axios 从 React 获取 cookie 时,我得到“没有 cookie”。我还在 Node 中设置了 app.use(cors())
解决方案
显然存在一个已知的 Axios 错误,可以这样解决。只需添加这行代码,然后重试。
axios.defaults.withCredentials = true;
const { data } = await axios.get('http://localhost:2000/users/test', {withCredentials:true});
推荐阅读
- javascript - 为网站显示一次推送通知
- mysql - 使用订单金额更新用户表
- c# - 为 OpenIdConnectAuthentication 设置 cookie 过期时间
- antlr - 为什么这个 ANTLR 语法没有返回正确的类型?
- javascript - 在使用之前在 Angular 中准备好服务
- azure - 如何使用 powershell 脚本将新的后端池添加到现有的 azure Front Door
- angular - 如何在角度或打字稿中迭代后端 api 映射响应
- javascript - Chrome 调试器 React.js 应用程序在刷新时显示白屏和加载图标(标签栏)
- c# - 从另一个泛型类调用子变量,泛型是父类
- mysql - 排序规则的非法混合错误 - 所有表和列都是相同的集合