problem description
The code is as follows, with withCredentials
check the stack in res of axios on the first layer.
finds that JSSESIONID and Path are / authcas/
set-cookie attribute of res.headers .
but in the res.headers of the second and third layers, it is found that the set-cookie property is constantly set, and the res.request._header finds that the request does not carry cookie at all
it is true that there is no cross-domain and Path path miscorrespondence in Cookie after checking, and there is no problem in PostMan and JavaHttpClient testing.
should have been carried on the Cookie but not on it. What is the problem? Thank you
function getCaptcha(username, password) {
const map = new Map;
map.set("password", password)
const axios = Axios.create({
headers: {
"X-Requested-With": "XMLHttpRequest"
},
baseURL: "https://xxxx.xxxx.edu.cn",
withCredentials: true
})
axios
.get("/authcas/getCaptcha?service=http://xxxxxx.action")
.then(res => {
const body = res.data
const ltLabel = body.match(/<input\s+type="hidden"\s+name="lt"\s+id="lt"\s+value="([a-zA-Z0-9.\-]+)"\s+\/>/)
if (ltLabel.length >= 2) map.set("lt", ltLabel[1])
else throw new Error()
const exeLabal = body.match(/<input\s+type="hidden"\s+name="execution"\s+id="execution"\s+value="(\w+)"\s+\/>/)
if (exeLabal.length >= 2) map.set("execution", exeLabal[1])
else throw new Error()
Axios
.all([
axios.get(`/authcas/security/evaluate?userId=${username}`),
axios.get("/authcas/captcha")
])
.then(() => {
const t = Math.random()
Axios
.all([
axios.get(`/authcas/captcha/master?${t}`),
axios.get(`/authcas/captcha/sub?${t}`)
])
.then((res) => {
debugger
})
.catch(err => {
debugger
})
})
.catch(err => {
debugger
})
})
.catch((err) => {
console.error(err)
})
}
