Browse Source

allow session auth for /notification endpoint

activeAddress
Ivan Socolsky 9 years ago
parent
commit
fcdeab422b
No known key found for this signature in database GPG Key ID: FAECE6A05FAA4F56
  1. 20
      lib/expressapp.js

20
lib/expressapp.js

@ -38,7 +38,7 @@ ExpressApp.prototype.start = function(opts, cb) {
this.app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'x-signature,x-identity,x-client-version,X-Requested-With,Content-Type,Authorization');
res.setHeader('Access-Control-Allow-Headers', 'x-signature,x-identity,x-session,x-client-version,X-Requested-With,Content-Type,Authorization');
res.setHeader('x-service-version', WalletService.getServiceVersion());
next();
});
@ -125,6 +125,7 @@ ExpressApp.prototype.start = function(opts, cb) {
return {
copayerId: identity,
signature: req.header('x-signature'),
session: req.header('x-session'),
};
};
@ -135,7 +136,13 @@ ExpressApp.prototype.start = function(opts, cb) {
return WalletService.getInstance(opts);
};
function getServerWithAuth(req, res, cb) {
function getServerWithAuth(req, res, opts, cb) {
if (_.isFunction(opts)) {
cb = opts;
opts = {};
}
opts = opts || {};
var credentials = getCredentials(req);
if (!credentials)
return returnError(new WalletService.ClientError({
@ -148,6 +155,9 @@ ExpressApp.prototype.start = function(opts, cb) {
signature: credentials.signature,
clientVersion: req.header('x-client-version'),
};
if (opts.allowSession) {
auth.session = credentials.session;
}
WalletService.getInstanceWithAuth(auth, function(err, server) {
if (err) return returnError(err, res, req);
@ -555,10 +565,10 @@ ExpressApp.prototype.start = function(opts, cb) {
});
router.get('/v1/notifications/', function(req, res) {
getServerWithAuth(req, res, function(server) {
getServerWithAuth(req, res, {
allowSession: true,
}, function(server) {
var timeSpan = req.query.timeSpan ? Math.min(+req.query.timeSpan || 0, Defaults.MAX_NOTIFICATIONS_TIMESPAN) : Defaults.NOTIFICATIONS_TIMESPAN;
var opts = {
minTs: +Date.now() - (timeSpan * 1000),
notificationId: req.query.notificationId,

Loading…
Cancel
Save