我使用 jwt auth 开发了一个 spring boot api,我得到了端点
'http://localhost:8080/api/signin' 如果登录成功,它会返回一个 JSESSIONID,它是一个 jwtToken。到那里为止,一切都很好,但我可以从浏览器中的 API 获取其他方法,因为 cookie 没有在请求正文中传递。
jwt生成的cookie如下所示:JSESSIONID=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTY4NTE1Mzk5NSwiZXhwIjoxNjg1MjQwMzk1fQ.9jxHyzDJKVra8IryxbH8se0xSl4_Dka pNsKmjRCvlJs_R8M3x3RBMeo-1VPAJv6YSQwC6ukJutRwGEyfeYrGwQ;路径=/;仅 Http;过期=2023 年 5 月 28 日星期日 02:38:33 GMT;
例如: 如果我这样做
curl --location 'http://localhost:8080/user/admin/all' --header 'Cookie: JSESSIONID=mycookie'
一切顺利,并返回我想要的 json,但是当我在浏览器上运行它时,在我的前端的 js 脚本中
axios
.get("http://localhost:8080/user/admin/all", {
headers: {
Cookie:
"JSESSIONID=mycookie",
},
})
.then((response) => {
console.log(response.headers);
console.log(response.data);
})
.catch((error) => {
console.error("Erro:", error);
});
我收到此错误:
GET http://localhost:8080/user/admin/all 401
未设置 cookie。我尝试了很多事情,几乎失去了理智。你们知道它会是什么吗?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您需要设置
withCredentials: true