From 2ca9bc2e610d803b2c10063822151e936affde1c Mon Sep 17 00:00:00 2001 From: adcentury Date: Wed, 10 Apr 2019 15:13:14 +0800 Subject: [PATCH] add support for auth token in headers --- .gitignore | 1 + lib/index.js | 2 +- test/authenticate.test.js | 25 ++++++++++++++++++++++++- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 176bd3e..2cbc052 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ coverage/ lib-cov/ coverage.json npm-debug.log +package-lock.json diff --git a/lib/index.js b/lib/index.js index 31d01f1..ab58df9 100644 --- a/lib/index.js +++ b/lib/index.js @@ -38,7 +38,7 @@ function authenticate(options, verify) { } return function(socket, next) { - var token = socket.handshake.query.auth_token; + var token = socket.handshake.headers['x-auth-token'] || socket.handshake.query.auth_token; var verified = function(err, user, message) { if (err) { return _this.fail(err, next); diff --git a/test/authenticate.test.js b/test/authenticate.test.js index c054ba1..62a233e 100644 --- a/test/authenticate.test.js +++ b/test/authenticate.test.js @@ -56,7 +56,30 @@ describe('authenticate', function() { expect(user.logged_in).to.be.true; done(); }); - }) + }); + + it('should support auth token being passed in with extraHeaders', function(done) { + socket = io('http://localhost:9000', { + extraHeaders: { + 'x-auth-token': data.valid_jwt.token + }, + transportOptions: { + polling: { + extraHeaders: { + 'x-auth-token': data.valid_jwt.token + } + } + }, + 'force new connection': true + }); + socket.on('success', function(user) { + expect(user).to.be.an('object'); + expect(user.name).to.equal(data.user.name); + expect(user.email).to.equal(data.user.email); + expect(user.logged_in).to.be.true; + done(); + }); + }); }); });