我需要远程登录Spring-build IP服务器才能从中获取图像。我能够传递表单数据并从另一个调用中获取jsessionid,但是我无法登录系统。
我在我的应用程序中表达了axios,axiosCookieJar和强悍的问题-问题是,即使认为我能够从第一次调用IP服务器中获取cookie,也无法将其正确传递到第二次通话。我无法登录服务器并更改其身份验证,因为它是旧的,它的弊大于利–因此,我需要找到一种方法来从NodeJS客户端对我的会话进行身份验证。
const logIn = async (address, bodyFormData) => {
const logIntoIP = await axios.request({
url: `${ipLinkCompose(address)}`,
method: "POST",
mode: "cors",
headers: {
"Content-Type": "multipart/form-data",
"Access-Control-Allow-Origin": "*",
Cookie: cookieJar.getCookiesSync(addressip)
},
withCredentials: true,
data: bodyFormData
});
};
我可以使用Postman进行相同的呼叫-向IP服务器发送GET请求以获取jsessionid,然后通过表单数据传递用户名/密码来获取第二个POST请求。
由于当前通话,我得到“无效的用户名或密码”-这样,multipart / form-data起作用了。
答案 0 :(得分:0)
您是否尝试过使用邮递员提供的完整cookie详细信息。这听起来像我遇到的类似问题。它适用于邮递员,但不适用于axios。我做了这样的事情,它奏效了。在我刚有了JSESSIONID之前。我将其余的信息(从邮递员的回复中获得)添加到了cookie字段中,并且可以正常工作。
axios 。请求({ 网址:“ http://url”, 方法:“获取”, 标头:{ Cookie:“ JSESSIONID = ???; path = / ???; domain = ???; HttpOnly; Expires = Tue,2038年1月19日,格林尼治标准时间;” } })
答案 1 :(得分:0)
解决方案是-服务器正在使用摘要授权,因此任何尝试均失败。我能够挖掘日志并在应用程序中找到它。