Set-Cookie头在POST请求302上重定向?

时间:2020-03-16 12:15:56

标签: javascript node.js axios

我正在使用axios尝试登录到COD网站以获得XSRF令牌,以对Node中的请求进行身份验证。

我已经能够正常登录,但是当检查Chrome中的流量时,我可以看到我在下面调用的页面返回302重定向,但是在标题中,包括所有包含XSRF的set-cookie标题我需要捕获的令牌

const loginReq = await axios({
    method: "post",
    url: "https://profile.callofduty.com/do_login?new_SiteId=cod",
    data: `username=foo&remember_me=true&password=bar%21&_csrf=${csrf}`,
    headers: {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.102 Safari/537.36 Vivaldi/2.0.1309.37",
        "Referer": "https://profile.callofduty.com/cod/login?redirectUrl=https%3A%2F%2Fwww.callofduty.com%2F",
        "Origin": "https://profile.callofduty.com",
        "Content-Type": "application/x-www-form-urlencoded",
        "Cookie": cookie.join(';')
    }
});

enter image description here

我遇到的问题是我的Axios响应返回200,并且我的页眉不是我期望的那样。相反,我得到了

{ 'content-type': 'text/html;charset=utf-8',
  server: 'Apache/2.4.39 (Amazon) Communique/4.2.2',
  'last-modified': 'Thu, 12 Mar 2020 00:37:41 GMT',
  etag: 'W/"785b9-5a09d8f80f9a5-gzip"',
  'cache-control': 'max-age=217372',
  expires: 'Thu, 19 Mar 2020 00:37:37 GMT',
  date: 'Mon, 16 Mar 2020 12:14:45 GMT',
  'transfer-encoding': 'chunked',
  connection: 'close, Transfer-Encoding',
  'x-activision-regioncode': 'EN',
  'x-activision-countrycode': 'GB',
  'access-control-allow-credentials': 'true',
  'access-control-allow-origin': 'https://profile.callofduty.com' }

有人知道我如何捕获所需的set-cookie标头吗?

1 个答案:

答案 0 :(得分:0)

通过在我的axios对象中添加以下内容来解决:

        maxRedirects: 0,
        validateStatus: function (status) {
            return status >= 200 && status < 303; // default
        },