使用 MERN 的 passport-jwt 不显示 cookie
Posted
技术标签:
【中文标题】使用 MERN 的 passport-jwt 不显示 cookie【英文标题】:passport-jwt using MERN does not shows cookies 【发布时间】:2020-08-15 10:46:14 【问题描述】:我正在尝试按照https://www.youtube.com/playlist?list=PLvTjg4siRgU0HS3cANo7KZ52Wkud083TL 使用nodejs 和React 来实现jwt-authentication。这里他们使用了react hooks,但我想在课堂上实现它并且没有redux。但我不知道如何接收cookie在前端使用 axios 我当前的代码是
后端:- 用户.js
userRouter.post('/login',passport.authenticate('local',session : false),(req,res)=>
if(req.isAuthenticated())
const _id,username,role = req.user;
const token =signToken(_id);
res.cookie('access_token',token,httpOnly:true,sameSite:true);
res.status(200).json(isAuthenticated :true,user : username,role);
)
前端:- login.js
onSubmit(e)
e.preventDefault();
const user=
username:this.state.username,
password:this.state.password
console.log(user);
axios.post('http://localhost:5000/user/login',user)
.then(res=>
console.log(res);
if(res.data.isAuthenticated)
console.log("authenticated")
)
【问题讨论】:
【参考方案1】:我现在要研究这个所以不确定,但我看到你需要在 index.js(React 部分)中设置以下内容:
axios.defaults.withCredentials = true;
就是这样,cookie应该保存在浏览器中。
看看这里,它可能会有所帮助:https://github.com/eXtremeXR/APIAuthenticationWithNode/blob/master/client/src/index.js
【讨论】:
以上是关于使用 MERN 的 passport-jwt 不显示 cookie的主要内容,如果未能解决你的问题,请参考以下文章