Update passport_helpers.js
This commit is contained in:
parent
fdfd7567dd
commit
7617c670cb
|
@ -1,48 +1,44 @@
|
|||
"use strict";
|
||||
|
||||
var config = require("./config");
|
||||
var passport = require("passport");
|
||||
|
||||
var User = require('mongoose').model('User');
|
||||
|
||||
module.exports.isAuthenticatedOrApiKey = function isAuthenticated(req, res, next) {
|
||||
if (req.isAuthenticated()) {
|
||||
return next();
|
||||
} else {
|
||||
// Try authenticate with API KEY
|
||||
if (req.headers.apikey || req.query.apikey || req.body.apikey) {
|
||||
passport.authenticate("localapikey", function (err, user, info) {
|
||||
if (err)
|
||||
return res.sendStatus(500);
|
||||
}
|
||||
// Try authenticate with API KEY
|
||||
if (req.headers.apikey || req.query.apikey || req.body.apikey) {
|
||||
passport.authenticate("localapikey", function (err, user, info) {
|
||||
if (err)
|
||||
return res.sendStatus(500);
|
||||
|
||||
if (!user)
|
||||
return res.status(401).send(info.message || "");
|
||||
if (!user)
|
||||
return res.status(401).send(info.message || "");
|
||||
|
||||
req.login(user, function(err) {
|
||||
if (err) return res.sendStatus(500);
|
||||
req.login(user, function(loginErr) {
|
||||
if (loginErr) return res.sendStatus(500);
|
||||
|
||||
req.user = user;
|
||||
return next();
|
||||
});
|
||||
req.user = user;
|
||||
return next();
|
||||
});
|
||||
|
||||
})(req, res, next);
|
||||
} else {
|
||||
return res.sendStatus(401);
|
||||
}
|
||||
}
|
||||
})(req, res, next);
|
||||
}
|
||||
return res.sendStatus(401);
|
||||
};
|
||||
|
||||
|
||||
module.exports.hasRole = function hasRole(roleRequired) {
|
||||
if (!roleRequired)
|
||||
if (!roleRequired) {
|
||||
throw new Error("Required role needs to be set");
|
||||
|
||||
}
|
||||
|
||||
return function(req, res, next) {
|
||||
return module.exports.isAuthenticated(req, res, function() {
|
||||
if (req.user && req.user.roles && req.user.roles.indexOf(roleRequired) !== -1)
|
||||
next();
|
||||
else
|
||||
res.sendStatus(403);
|
||||
if (req.user && req.user.roles && req.user.roles.indexOf(roleRequired) !== -1){
|
||||
return next();
|
||||
}
|
||||
return res.sendStatus(403);
|
||||
});
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue