Merge pull request #2650 from strongloop/fix/token-in-context-3x
Fix token middleware crash
This commit is contained in:
commit
3dfd86f6ff
|
@ -63,6 +63,7 @@
|
||||||
"cookie-parser": "^1.3.4",
|
"cookie-parser": "^1.3.4",
|
||||||
"es5-shim": "^4.1.0",
|
"es5-shim": "^4.1.0",
|
||||||
"eslint-config-loopback": "^1.0.0",
|
"eslint-config-loopback": "^1.0.0",
|
||||||
|
"express-session": "^1.14.0",
|
||||||
"grunt": "^1.0.1",
|
"grunt": "^1.0.1",
|
||||||
"grunt-browserify": "^5.0.0",
|
"grunt-browserify": "^5.0.0",
|
||||||
"grunt-cli": "^1.2.0",
|
"grunt-cli": "^1.2.0",
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
// This file is licensed under the MIT License.
|
// This file is licensed under the MIT License.
|
||||||
// License text available at https://opensource.org/licenses/MIT
|
// License text available at https://opensource.org/licenses/MIT
|
||||||
|
|
||||||
|
var g = require('strong-globalize')();
|
||||||
|
|
||||||
module.exports = function() {
|
module.exports = function() {
|
||||||
throw new Error(g.f(
|
throw new Error(g.f(
|
||||||
'%s middleware was removed in version 3.0. See %s for more details.',
|
'%s middleware was removed in version 3.0. See %s for more details.',
|
||||||
|
|
|
@ -125,7 +125,7 @@ function token(options) {
|
||||||
req.accessToken = token || null;
|
req.accessToken = token || null;
|
||||||
rewriteUserLiteral(req, currentUserLiteral);
|
rewriteUserLiteral(req, currentUserLiteral);
|
||||||
var ctx = req.loopbackContext;
|
var ctx = req.loopbackContext;
|
||||||
if (ctx) ctx.set('accessToken', token);
|
if (ctx && ctx.active) ctx.set('accessToken', token);
|
||||||
next(err);
|
next(err);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -8,6 +8,8 @@ var LoopBackContext = require('loopback-context');
|
||||||
var contextMiddleware = require('loopback-context').perRequest;
|
var contextMiddleware = require('loopback-context').perRequest;
|
||||||
var loopback = require('../');
|
var loopback = require('../');
|
||||||
var extend = require('util')._extend;
|
var extend = require('util')._extend;
|
||||||
|
var session = require('express-session');
|
||||||
|
|
||||||
var Token = loopback.AccessToken.extend('MyToken');
|
var Token = loopback.AccessToken.extend('MyToken');
|
||||||
var ds = loopback.createDataSource({ connector: loopback.Memory });
|
var ds = loopback.createDataSource({ connector: loopback.Memory });
|
||||||
Token.attachTo(ds);
|
Token.attachTo(ds);
|
||||||
|
@ -509,6 +511,30 @@ describe('app.enableAuth()', function() {
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// See https://github.com/strongloop/loopback-context/issues/6
|
||||||
|
it('checks whether context is active', function(done) {
|
||||||
|
var app = loopback();
|
||||||
|
|
||||||
|
app.enableAuth();
|
||||||
|
app.use(contextMiddleware());
|
||||||
|
app.use(session({
|
||||||
|
secret: 'kitty',
|
||||||
|
saveUninitialized: true,
|
||||||
|
resave: true,
|
||||||
|
}));
|
||||||
|
app.use(loopback.token({ model: Token }));
|
||||||
|
app.get('/', function(req, res) { res.send('OK'); });
|
||||||
|
app.use(loopback.rest());
|
||||||
|
|
||||||
|
request(app)
|
||||||
|
.get('/')
|
||||||
|
.set('authorization', this.token.id)
|
||||||
|
.set('cookie', 'connect.sid=s%3AFTyno9_MbGTJuOwdh9bxsYCVxlhlulTZ.' +
|
||||||
|
'PZvp85jzLXZBCBkhCsSfuUjhij%2Fb0B1K2RYZdxSQU0c')
|
||||||
|
.expect(200, 'OK')
|
||||||
|
.end(done);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function createTestingToken(done) {
|
function createTestingToken(done) {
|
||||||
|
|
Loading…
Reference in New Issue