UNPKG

fh-wfm-user

Version:
68 lines (58 loc) 2.12 kB
var express = require('express') , config = require('../../config/config-user') , MbaasServiceProxy = require('./mbaas-service-proxy'); function initRouter(msProxy) { var router = express.Router(); router.route('/auth').post(function(req, res, next) { var params = req && req.body && req.body.params; msProxy.auth(params).then(function(data) { res.json(data); }, function(error) { next(error); }); }); router.route('/verifysession').post(function(req, res, next) { var fhParams = req.fh_params || {__fh: {}}; var sessionToken = fhParams.__fh.sessionToken || fhParams.__fh.sessiontoken; msProxy.verifysession(sessionToken).then(function(data) { res.json(data); }, function(error) { next(error); }); }); router.route('/revokesession').post(function(req, res, next) { var fhParams = req.fh_params || {__fh: {}}; var sessionToken = fhParams.__fh.sessionToken || fhParams.__fh.sessiontoken; msProxy.revokesession(sessionToken).then(function(data) { res.json(data); }, function(error) { next(error); }); }); return router; } /** * Subscribe for user session validation * Route Auth requests to config.authpolicyPath endpoint * @param mediator subscribe for all validation messages * @param app cloud application * @param guid name of MBaas Service */ module.exports = function(mediator, app, guid) { var self = this; self.mediator = mediator; var msProxy = new MbaasServiceProxy(guid); var router = initRouter(msProxy); app.use(config.authpolicyPath, router); // subscribe for session validation topic self.mediator.subscribe('wfm:user:session:validate', function(sessionToken) { return msProxy.verifysession(sessionToken) .then(function(validationResponse) { // needs to publish the validation response topic self.mediator.publish('done:' + 'wfm:user:session:validate:' + sessionToken, validationResponse); }) .catch(function(err) { self.mediator.publish('error:' + 'wfm:user:session:validate:' + sessionToken, err); }); }); };