Maison interface Web js tutoriel Share Express + Node.js implémentation de l'explication détaillée de l'intercepteur de connexion

Share Express + Node.js implémentation de l'explication détaillée de l'intercepteur de connexion

May 26, 2018 pm 03:22 PM
express javascript node.js

Cet article présente principalement l'exemple de code d'Express + Node.js pour implémenter l'intercepteur. L'éditeur pense que c'est plutôt bien, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un oeil.

Introduction

L'intercepteur ici correspond au filtre dans spring MVC, tout http Le code correspondant /resource n’est accessible qu’après le traitement de la demande par l’intercepteur.

Le scénario d'application le plus typique consiste à mettre en œuvre un contrôle d'accès, en donnant à différents utilisateurs/groupes d'utilisateurs différents droits d'accès aux pages et aux interfaces, et en autorisant uniquement l'accès aux pages et interfaces autorisées.

Scénario

1

2

3

4

5

6

7

8

app.post('/login', function(request, res, next){

// do something

});

app.post('/getData',function(request, res, next){

// do something

  var data="some data";

  res.send({"data":data});

});

Copier après la connexion

Si aucun traitement n'est effectué, toute personne qui envoie la demande de publication de getData peut directement depuis Reading les données en arrière-plan ne nécessitent aucune connexion, il vous suffit de connaître l'interface.

correspond à chaque interface. Si un jugement d'autorisation est ajouté sous chaque interface, le code sera très répétitif, donc orienté aspect Vous pouvez ajouter un intercepteur avant chaque requête http, pour réaliser le. fonction de jugement de permission.

Mise en œuvre

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

// 所有用户可以访问index.html, error.html

// admin可以访问admin.html, /getData

// 登陆用户可以访问home.html

app.all('/*', function(request, res, next){

  // 思路:

  // 得到请求的url

  // 然后得到request的cookie,根据cookie得到当前登陆的用户

  // 判断用户对应url的权限

  var jsPattern=/\.js$/;

  var url=request.orignalUrl;

  if(jsPattern.test(url)){

  // 公共部分,放行

    next();

    return;

  }

  if(url=='index.html'||url=='error.html'){

    next();

    return;

  }

  var cookie=JSON.stringify(req.cookies);

  if(access){

    next();

  }

  else{

    res.redirect('error.html');

  }

});

Copier après la connexion

Idées de mise en œuvre :

1. Demandez (ce qui précède suffit) et obtenez l'URL actuellement visitée

2 Obtenez l'utilisateur actuel en fonction du cookie

3. URL et l'utilisateur S'il est accessible

4 S'il peut appeler next();

S'il n'est pas accessible, renvoie erreur. message

Remarque

  1. next(); a traité la demande, comme le précédent app.post( '/getData'), lorsque le traitement du code ici est terminé, il reviendra au next(); correspondant, donc la relation correspondante doit être bien gérée si nécessaire, return est nécessaire pour terminer la fonction en cours, sinon une erreur se produira.

  2. Pour les parties publiques, telles que les plug-ins js, certaines images et les parties css, elles peuvent être publiées directement.

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 de ce site Web
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

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 pm 02:54 PM

Comment mettre en œuvre un système de reconnaissance vocale en ligne à l'aide de WebSocket et JavaScript

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel Dec 17, 2023 pm 05:30 PM

WebSocket et JavaScript : technologies clés pour mettre en œuvre des systèmes de surveillance en temps réel

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript Dec 17, 2023 am 09:39 AM

Comment mettre en œuvre un système de réservation en ligne à l'aide de WebSocket et JavaScript

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel Dec 17, 2023 pm 12:09 PM

Comment utiliser JavaScript et WebSocket pour mettre en œuvre un système de commande en ligne en temps réel

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP Jan 05, 2024 pm 06:08 PM

Tutoriel JavaScript simple : Comment obtenir le code d'état HTTP

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel Dec 17, 2023 pm 05:13 PM

JavaScript et WebSocket : créer un système efficace de prévisions météorologiques en temps réel

Analyse comparative d'Express et Laravel : Choisissez le framework qui vous convient le mieux Analyse comparative d'Express et Laravel : Choisissez le framework qui vous convient le mieux Mar 10, 2024 pm 10:15 PM

Analyse comparative d'Express et Laravel : Choisissez le framework qui vous convient le mieux

Comparaison approfondie d'Express et de Laravel : Comment choisir le meilleur framework ? Comparaison approfondie d'Express et de Laravel : Comment choisir le meilleur framework ? Mar 09, 2024 pm 01:33 PM

Comparaison approfondie d'Express et de Laravel : Comment choisir le meilleur framework ?

See all articles