Saya membangunkan api but spring menggunakan jwt auth dan saya mendapat titik akhir
'http://localhost:8080/api/signin'
Jika log masuk berjaya, ia akan mengembalikan JSESSIONID, iaitu jwtToken. Setakat ini begitu baik, tetapi saya boleh mendapatkan kaedah lain daripada API dalam penyemak imbas kerana kuki tidak diluluskan dalam badan permintaan.
jwt adalah seperti berikut: JSESSIONID=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTY4NTE1Mzk5NSwiZXhwIjoxNjg1MjQwMzk1fQ.9jxHyzDJKVra8IryxbH8se0xSl4_Dka pNsKmjRCvlJs_R8M3x3RBMeo-1VPAJv6YSQwC6ukJutRwGEyfeYrGwQ;路径=/;仅 Http;过期=2023 年 5 月 28 日星期日 02:38:33 GMT;
Sebagai contoh: Jika saya melakukan ini
curl --location 'http://localhost:8080/user/admin/all' --header 'Cookie: JSESSIONID=mycookie'
Semuanya berjalan lancar dan mengembalikan json yang saya mahu, tetapi apabila saya menjalankannya pada penyemak imbas, dalam skrip js pada bahagian hadapan saya
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); });
Saya mendapat ralat ini:
GET http://localhost:8080/user/admin/all 401
Tiada set biskut. Saya mencuba banyak perkara dan hampir hilang akal. Adakah anda tahu apa yang akan berlaku?
Anda perlu menyediakan
withCredentials: true