Ich habe eine Spring-Boot-API mit JWT-Authentifizierung entwickelt und den Endpunkt erhalten
'http://localhost:8080/api/signin'
Wenn die Anmeldung erfolgreich ist, wird eine JSESSIONID zurückgegeben, bei der es sich um ein jwtToken handelt. Soweit so gut, aber ich kann andere Methoden von der API im Browser abrufen, da das Cookie nicht im Anforderungstext übergeben wird.
jwt generierten Cookies sind wie folgt: JSESSIONID=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTY4NTE1Mzk5NSwiZXhwIjoxNjg1MjQwMzk1fQ.9jxHyzDJKVra8IryxbH8se0xSl4_Dka pNsKmjRCvlJs_R8M3x3RBMeo-1VPAJv6YSQwC6ukJutRwGEyfeYrGwQ;路径=/;仅 Http;过期=2023 年 5 月 28 日星期日 02:38:33 GMT;
Zum Beispiel: Wenn ich das mache
curl --location 'http://localhost:8080/user/admin/all' --header 'Cookie: JSESSIONID=mycookie'
Alles läuft gut und gibt den gewünschten JSON zurück, aber wenn ich ihn im Browser ausführe, im JS-Skript auf meinem Frontend
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); });
Ich erhalte diese Fehlermeldung:
GET http://localhost:8080/user/admin/all 401
Keine Cookies gesetzt. Ich habe so viel ausprobiert und fast den Verstand verloren. Wissen Sie, was es sein wird?
您需要设置
withCredentials: true