Ich bin neu mit NodeJs und ich befolge tatsächlich ein Tutorial darüber. Im Tutorial wurde ein Code verwendet: In einem verify.js die folgende Funktion geschrieben wurde Datei:Node.js Benutzerauthentifizierung
soexports.verifyOrdinaryUser = function (req, res, next) {
// check header or url parameters or post parameters for token
var token = req.body.token || req.query.token || req.headers['x-access-token'];
// decode token
if (token) {
// verifies secret and checks exp
jwt.verify(token, config.secretKey, function (err, decoded) {
if (err) {
var err = new Error('You are not authenticated!');
err.status = 401;
return next(err);
} else {
// if everything is good, save to request for use in other routes
req.decoded = decoded;
next();
}
});
} else {
// if there is no token
// return an error
var err = new Error('No token provided!');
err.status = 403;
return next(err);
}
};
und in einer anderen Datei wurde die Funktion aufgerufen:
/*****........****/
.post(verify.verifyOrdinaryUser, function(req, res, next){
/******.......*****/
alles funktioniert ohne Problem. 1- Ich verstehe nicht, warum die Funktion verify.verifyOrdinaryUser nicht so genannt wird: nächste
verify.verifyOrdinaryUser(req, res, next)
mit seinem Parameter (wie ist es möglich, dass wir eine Funktion ohne seine Parameter nennen
.? ich habe eine Funktion geschrieben:
exports.verifyAdmin = function(req, res, next){
if(req.decoded._doc.admin == false){
var err = new Error('You cannot access to this ressource!');
err.status = 401;
return next(err);
}
else {
next();
}
};
in der gleichen Datei, um zu überprüfen, ob ein Benutzer ein Administrator ist oder nicht, ich habe diese Funktion nach der verifyOrdinaryUser Funktion aufzurufen, mein Problem ist, ich weiß nicht, wie kann ich das anrufen f mit oder ohne Parameter. Danke.