Ich bin wenig neu zu Knoten js und so meine alle Konzepte in Bezug auf app.js Konfiguration ist nicht klar. Daher suche Hilfe von der Gemeinschaft.Aufruf der Authentifizierung Middleware durch app.use()
Derzeit habe ich folgenden Code als Middleware für die Authentifizierung in app.js Datei.
var authChecker = function(req, res, next){
if(req.query && (req.query.userName || req.query.username)){ // if api query is dependent on the user, validate its token.
try{
var authToken;
req.headers.authorization.split(' ')[0] == "Bearer" ? authToken = req.headers.authorization.split(' ')[1] : "";
var user = jwt.verify(authToken, 'secretkey');
if(req.query.userName == user.username){
next();
}
else{
res.cookie('username', '', {expires: new Date(0)});
res.cookie('token', '', {expires: new Date(0)});
return res.status(401).json({"msg": "Authentication required."});
}
}
catch(err){ // if not able to validate the token, then expire all the available token
res.cookie('username', '', {expires: new Date(0)});
res.cookie('token', '', {expires: new Date(0)});
return res.status(401).json({"msg": "Authentication required."})
}
}
else{
next();
}
};
Und ich benutze dies in der gleichen app.js Datei für die Authentifizierung einiger der APIs.
app.namespace('/api', function() {
app.get('/abc', authChecker, abc.cde);
app.get('/cde', efg.ghi); //authentication not required for this API.
Jetzt möchte ich dies modularisieren. Anstatt authChecker in app.js zu definieren, möchte ich es in einer anderen Datei definieren und ähnlich verwenden. Kann mir bitte jemand hier helfen. Ich denke, wir können dies irgendwie mit app.js erreichen, aber nicht genau, wie. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
Vielen Dank allen für die Antwort. Alle Antworten scheinen richtig, aber da diese Antwort detaillierter ist und zuerst beantwortet wird, akzeptiere ich das. – undefined