你怎么能用超级饼干?

时间:2012-08-12 04:28:51

标签: node.js mocha superagent

我正在使用express进行cookie会话管理:

req.session.authentication = auth;

我使用类似

的方式验证经过身份验证的网址
if(!req.session.authentication){res.send(401);}

现在我正在使用mocha,superagentshould构建网址测试,但是我似乎找不到用superagent获取/设置cookie的方法。我甚至尝试在经过身份验证的测试之前请求登录,但它无法正常工作,

我已经尝试将请求添加到mocha BDD套件的before语句中的登录,但是它仍然告诉我该请求是未经授权的,我已经测试了来自浏览器的请求的身份验证,但它不是从套房工作任何想法为什么?

4 个答案:

答案 0 :(得分:29)

使用superagent.agent()(而不是普通的旧superagent)来使请求具有持久性Cookie。请参阅'Preserving cookies' in the superagent docs或代码示例:agency.jscontroller.test.js

答案 1 :(得分:16)

似乎以下代码工作正常;

  

req.set('Cookie',“cookieName1 = cookieValue1; cookieName2 = cookieValue2”);

答案 2 :(得分:8)

如果问题在于为CORS请求发送cookie,请使用.withCredentials()方法 described here

request
  .get('http://localhost:4001/')
  .withCredentials()
  .end(function(err, res) { })

答案 3 :(得分:2)

既然你提到你需要让设置cookie:

得到:

const request = await Superagent.get('...')

const cookie = request.header['set-cookie']

集:

Superagent.post('...').set('Cookie', 'cookie_info')