我尝试用spring和react构建一个web应用程序。在授权中,我发送了一个这样的JWT cookie:
final String jwt = jwtUtil.generateToken(user);
Cookie jwtCookie = new Cookie("jwt", jwt);
jwtCookie.setHttpOnly(true);
jwtCookie.setPath("/");
response.addCookie(jwtCookie);
return new ResponseEntity<String>(jwt, HttpStatus.OK);
当我在Postman中发送请求时,cookie会正确显示:Postman screenshot
现在我想用这样的React来验证自己:
return axios
.post("http://localhost:8080/auth", {}, {
auth: {
username: uname,
password: pass
}
})
.then(response => {
console.log(response)
return response.data;
});
但是,即使授权成功,我甚至可以将jwt-token存储在本地存储中,cookie也不会出现在浏览器中。
有人知道怎么解决吗?
谢谢你的帮助!
1条答案
按热度按时间gfttwv5a1#
这是CORS的问题。您必须将
withCredentials
标志设置为true
,才能进行cookie交换。并允许服务器端的凭据: