Ich habe eine Express-App, die die Authentifizierung von JWT behandelt wird, und ich einfach speichern das Token in Sitzung nach dem Login.Persist Express-App-Sitzung in Mocha und Supertest
req.session.JWToken = '<token>';
Die Authentifizierungs-Middleware wie folgt aussieht:
this.use('(^\/admin')', expressJWT({
secret: 'secret',
getToken: function fromHeaderOrQuerystring (req) {
if (req.headers.authorization && req.headers.authorization.split(' ')[0] === 'Bearer') {
return req.headers.authorization.split(' ')[1];
} else if (req.query && req.query.token) {
return req.query.token;
} else if (req.session.JWToken) {
return req.session.JWToken;
}
return null;
}
}).unless({path: ['/login', '/signup']}));
ich dies mit Mokka und Supertest testen müssen, habe ich versucht, Code unten:
var app = require('./../app');
var request = require('supertest');
describe('app', function() {
var agent = request.agent(app);
it('should signin', function(done) {
agent
.post('/login')
.send({_email: '<email>', _password: '<password>'})
.expect(200, done)
.end(function(err, res){
if(err) throw err;
done();
});
});
// how to persist session here ?
it('should get a restricted page', function(done) {
agent
.get('/admin')
.expect(200)
.end(function(err, res){
if(err) throw err;
done();
});
});
});
haben keine Ahnung, wie die Sitzung beharren auf der zweiten it
. Bitte führen Sie mich eine Richtung.
Haben Sie das jemals herausgefunden? – frogbandit
leider noch nicht .. bitte lassen Sie mich wissen, wenn Sie tun – egig