Heim  >  Artikel  >  Web-Frontend  >  Implementieren Sie die Funktion zum Abfangen von Anmeldungen unter Express+Nodejs

Implementieren Sie die Funktion zum Abfangen von Anmeldungen unter Express+Nodejs

零下一度
零下一度Original
2018-05-23 17:10:141689Durchsuche

In diesem Artikel wird hauptsächlich der Login-Interception-Implementierungscode unter Express+Nodejs vorgestellt. Der Herausgeber findet ihn recht gut, daher werde ich ihn jetzt mit Ihnen teilen und als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf

Es stellte sich heraus, dass ich nie wusste, wie man in Express+Nodejs einen Interceptor ähnlich wie Struts2 hinzufügt (da die Login-Interception-Funktion erforderlich ist).

Ich habe immer darüber nachgedacht, dem Router eine ähnliche Übertragung hinzuzufügen RoutingSteuercode (es ist sehr mühsam, jeden einzelnen hinzuzufügen)

app.get('/show', controllers.checkLogin);//登录验证
app.get('/show', controllers.showList);//实际跳转

Erneut Oder hinzufügen Die folgende Überprüfung für jede Controller-Methode in einigen Projekten (zu umständlich)

if (!req.session.user) {
    return res.redirect("/login");
  }

Kürzlich bin ich auf einen Codeausschnitt gestoßen, der zuvor eine Sitzung verwendet hat, und plötzlich hatte ich eine Erleuchtung! !

//session
app.use(function (req, res, next) {
  var err = req.flash('error');
  var success = req.flash('success');
  res.locals({
    user:req.session.user,
    navSide:req.session.navSide,
    error:err.length ? err : null,
    success:success.length ? success : null
  });
  next();
});

Ist das nicht nur ein Abfangjäger~囧~

Leicht modifiziert

//登录拦截器
app.use(function (req, res, next) {
  var url = req.originalUrl;
  if (url != "/login" && !req.session.user) {
    return res.redirect("/login");
  }
  next();
});

Nach dem Test war es erfolgreich

Das obige ist der detaillierte Inhalt vonImplementieren Sie die Funktion zum Abfangen von Anmeldungen unter Express+Nodejs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn