linagora-rse
Version:
44 lines (34 loc) • 1.23 kB
JavaScript
'use strict';
var DEFAULT_TIMEOUT = 20000;
var authToken = require('../../core/auth/token');
var logger = require('../../core/logger');
module.exports.generateNewToken = function(ttl) {
return function(req, res, next) {
authToken.getNewToken({ttl: ttl || DEFAULT_TIMEOUT, user: req.user._id}, function(err, token) {
if (err || !token) {
if (err) {
logger.error('Can not generate new token', err);
}
return res.status(500).json({error: {code: 500, message: 'Server Error', details: 'Can not generate token'}});
}
req.token = token;
next();
});
};
};
function getToken(req, res, next) {
if (!req.params.token) {
return res.status(400).json({error: {code: 400, message: 'Bad request', details: 'Can not retrieve token'}});
}
authToken.getToken(req.params.token, function(err, token) {
if (err) {
return res.status(500).json({error: {code: 500, message: 'Server Error', details: 'Can not get token'}});
}
if (!token) {
return res.status(404).json({error: {code: 404, message: 'Not found', details: 'Token not found or expired'}});
}
req.token = token;
next();
});
}
module.exports.getToken = getToken;