2013-10-13 7 views
0

Je suis en train de concevoir une architecture où l'interface web est un client (développé en utilisant un framework js front-end) et toutes les requêtes sont routées vers plusieurs webservices.node.js reste authentification webservice pour interaction client-serveur

Toutes les communications se feront en utilisant des réponses HTTP standard et des entités JSON.

Maintenant, je suis confronté au mécanisme d'authentification. Mon service aura, bien sûr, plusieurs utilisateurs, et je dois restreindre l'accès aux ressources des utilisateurs. Les utilisateurs doivent 1) se connecter au client Web (/admin) puis 2) le client js effectuera plusieurs requêtes AJAX sur les services Web au nom de l'utilisateur.

Dois-je créer une session persistante entre le client/serveur, puis passer une référence à côté de chaque requête ou authentifier chaque requête en utilisant une approche sans état? Comment puis-je authentifier les requêtes client-client pour l'utilisateur actuel sans ajouter trop de surcharge ou de complexité à mon système? Je regarde passeport-local et passeport-localapikey mais je ne suis pas très clair si je devrais autoriser mon client ou l'utilisateur lui-même (ce qui signifie que je devrais avoir une seule paire d'identifiants pour tous les utilisateurs demande de service ou une paire par utilisateur?)

Un exemple simple (expliqué, je n'ai pas besoin de copier-coller du code) serait très apprécié. A ce stade je préférerais que la solution introduise moins de complexité mais accorde une bonne sécurité afin de pouvoir la mettre en place très rapidement.

PS. Je pourrais également prendre en compte la création d'une authentification de gestion de service distincte afin de créer une API commune à partager entre le client et le serveur, mais cela me semble un peu trop technique.

Merci,

Répondre

0

Si vous utilisez déjà Express comme cadre pour Node.js, vous pouvez l'utiliser est construit dans la gestion des sessions. Il est capable d'utiliser toute sorte de magasin de session, y compris la mémoire, Redis, mongo, etc.

Il y a un bon exemple: http://blog.modulus.io/nodejs-and-express-sessions

+0

Oui, j'utilise exprimer à la fois pour le site Web du client (celui de répondre sur/admin) et pour les serveurs Web. Donc, votre but suggère-t-il de partager une session entre tous les services qui sont initialisés lors de la connexion de l'utilisateur? Ai-je raison? Est-ce que cela fonctionnerait beaucoup mieux/pire dans votre expérience d'utiliser une interaction sans état à la place? BTW J'aime cette solution car elle semble plus rapide à déployer. – user1978591

Questions connexes