Question

Le mot Let que j'ai un long serveur de sondage qui fonctionne comme il se doit - lorsque le nouveau client est connecté au site (il se connecte tout comme anonyme sans authentification), nouveau GUID est émis et stocké dans un cookie signé qui identifie la connexion lors du vote entre le client et le serveur.

Maintenant, le client veut se connecter et continuer en tant qu'utilisateur authentifié. Le problème est que le serveur à long sondage (de Node.js) et framework web (ASP.NET) fonctionnent comme des systèmes autonomes. Je peux utiliser le mécanisme d'authentification spécifique ASP.NET (MVC) pour se connecter à partir du point de framework web de vue, mais cela ne porte pas atteinte à long serveur de sondage (où je suis toujours connu comme un type GUID). Comment dois-je en toute sécurité Authentifier l'utilisateur du point de vue du serveur sondage longue? Y a-t-il des « meilleures pratiques » pour ce scénario? client authentifiées doit, après la procédure d'authentification, identifié plus par sa clé unique (disons une adresse mail au lieu de GUID).

Était-ce utile?

La solution

Un mince que je pouvais imaginer:

  1. Numéro un ID de session, soit utiliser la substance ASP.net, ou émettre un supplémentaire, vous devrez peut-être accrocher dans le auth ASP.net pour l'invalider en cas de besoin -
  2. Quand vous faites la longue faire du scrutin que d'envoyer le cookie avec, de sorte que le serveur Node.js reçoit.
  3. Enregistrez le GUID à un DB que vous pouvez accéder à la fois ASP et Node.js.

Le reste doit être clair, que pour ce qui BDs que vous pouvez utiliser, je n'ai pas d'expérience, mais il a tout à fait de DB beaucoup d'emballages pour Node.js, bien que beaucoup d'entre eux sont unmaintained ou non fonctionnalité complète .

Vous devriez consulter la base de données liste dans le wiki et Node.js jetez un oeil à chacun, ne pas oublier de lancer une recherche sur Google à ce sujet et vérifier les questions pour voir s'il y a quelque chose est grand manque avant d'aller avec elle.

Oh et une autre solution (DBless) jaillissant à l'esprit:

  1. Faites la auth via ASP.net
  2. Lorsque Node.js reçoit les cookies auth, les transmettre à une page spéciale ASP.net (vous pouvez faire que seul accessible à partir de localhost) qui vient Node.js dit si cette demande est valide (il pourrait aussi donner Node.js certaines données utilisateur)
  3. Seulement si la demande est valide, commencez à long polling

Cela devrait à peine introduire un décalage lorsqu'il est fait sur le même serveur.

Autres conseils

Je suis actuellement confronté au même problème et voici ce que je vais faire:

J'ai un serveur REST en Java qui sert de l'API à mon client Web. Pour le long sondage, je l'ai écrit un petit serveur Node.js.

  1. Le client se connecte à l'envoi Node.js nom d'utilisateur / mot de passe (via HTTPS). Vous pouvez également passer un jeton de session.
  2. node.js appelle le serveur REST pour auth l'utilisateur avec les informations d'identification données
  3. Si l'utilisateur est authentifié attend de Node.js ou envoie 401 autrement

L'avantage est que le serveur Node.js n'a pas besoin de savoir quoi que ce soit au sujet de la structure DB, n'a pas besoin d'inclure les appels SQL. Cela permet également de réécrire le serveur avec Python tordu si vous voulez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top