Maison >interface Web >js tutoriel >Implémenter la fonction d'interception de connexion sous Express+Nodejs

Implémenter la fonction d'interception de connexion sous Express+Nodejs

零下一度
零下一度original
2018-05-23 17:10:141751parcourir

Cet article présente principalement le code d'implémentation de l'interception de connexion sous Express+Nodejs. L'éditeur pense qu'il est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil

Il s'avère que je n'ai jamais su comment ajouter un intercepteur similaire à Struts2 dans Express+Nodejs (car la fonction d'interception de connexion est requise).

J'ai toujours pensé à ajouter un transfert similaire au routeur RoutageCode de contrôle (c'est très gênant d'ajouter chacun)

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

Encore Ou comme dans certains projets, ajouter la vérification suivante à chaque méthode de contrôleur (trop lourde)

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

Récemment, je suis tombé sur un extrait de code qui utilisait la session auparavant, et du coup j'ai eu une illumination ! !

//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();
});

N'est-ce pas juste un intercepteur~囧~

Légèrement modifié

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

Après les tests, il a réussi

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn