如何使用JavaScript从浏览器获取cookie,然后将其用于授权?

时间:2019-03-25 12:35:35

标签: javascript node.js automation xmlhttprequest qa

此实现用于e2e测试,它是一种检查文件是否可下载而不是实际下载的解决方法。

当前,我正在使用以下代码从特定的HEAD请求获取标头和状态。这里的问题是它不使用先前步骤中的授权,因此很明显,我将不得不再次授权,但这次是使用cookie。

1)如何从浏览器获取cookie(我只需要sessionID cookie),我的意思是从活动会话中获取cookie,因为正如我所说,我已经登录了?并且还将sessionID存储在全局变量中。

2)在下面提供的代码中,如何发送/使用cookie(sessionID)进行授权?

  • 我正在使用JavaScript / Node.js

    getHeader: async function (url) {
        var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
        var xhr = new XMLHttpRequest();
        url = "{url}.pdf";
        xhr.open("HEAD", url, true);
        xhr.onreadystatechange = function () {
            if (xhr.readyState == this.DONE) {
                console.log('HEADERS:  ' + xhr.getAllResponseHeaders());
                console.log('STATUS: ' + xhr.status)
            }
        };
        xhr.send(null);
    },
    

1 个答案:

答案 0 :(得分:0)

我认为您应该使用cookie解析器模块(https://www.npmjs.com/package/cookie-parser):

var express = require('express')
var cookieParser = require('cookie-parser')

var app = express()
app.use(cookieParser())

app.get('/', function (req, res) {
  // Cookies that have not been signed
  console.log('Cookies: ', req.cookies)

  // Cookies that have been signed
  console.log('Signed Cookies: ', req.signedCookies)
})

app.listen(8080)

除此之外,您还可以查看ExpressJS文档以获取使用cookie时的最佳实践: https://expressjs.com/en/advanced/best-practice-security.html#use-cookies-securely