【发布时间】:2014-12-14 17:55:57
【问题描述】:
我正在为受jwt 保护的 REST API 编写集成测试。
一个 API 操作 POST /user/token 在给定 username 和 password 的情况下返回 jwt,然后此令牌用于以下操作列表:
GET /user/:id
路由使用jwt({secret: secret.secretToken})的地方,因此令牌包含在HTTP标头Authorization中。
在使用supertest进行测试时,我可以进行嵌套测试,但我想先获取token,然后使用此token进行其他操作的测试。
POST /user/token => 12345
GET /user/:id, `Authorization Bearer 12345`
GET /user/:foo, `Authorization Bearer 12345`
如何避免为每个操作测试生成一个新令牌(见下文),但只使用一个由 POST /user/token 生成的令牌。
it('should get a valid token for user: user1', function(done) {
request(url)
.post('/user/token')
.send({ _id: user1._id, password: user1.password })
.expect(200) // created
.end(function(err, res) {
// test operation GET /user/:id
【问题讨论】:
标签: node.js jwt supertest express-jwt