Question

J'utilise les spécifications WAMP.WS pour concevoir des salles de discussion publiques / privées sur mon site Web.

Mon problème survient lorsque j'essaie de conserver une liste de tous les utilisateurs connectés. Ce que je pourrais faire:

  1. Tous les utilisateurs s'abonnent à la rubrique "/ contacts / connexions".
  2. Lorsqu'un utilisateur se connecte, il publie un message "Hello" avec un argument "user_id", disant aux autres utilisateurs qu'il est connecté.

-> Mais comment puis-je faire confiance aux utilisateurs? Tout utilisateur peut envoyer un message "Hello" avec un argument aléatoire "user_id".

Pour moi, le serveur doit faire quelques vérifications avant de diffuser le message. Mais est-ce conforme aux spécifications Wamp.js? J'ai lu qu'un message publié est toujours diffusé par serveur.

Une autre solution pourrait être d'utiliser un appel RPC pour connecter un utilisateur. En fait, je l'ai fait pour authentifier les utilisateurs. Mais le serveur peut-il diffuser un événement en suivant "/ contacts / connexions" en soi-même? (Après un appel RPC, pas après le message "publier") J'ai lu que l'événement n'est que le résultat direct d'un "Publier" du client. De plus, cela n'empêcherait pas les utilisateurs réguliers d'envoyer un sujet d'événement "/ Contacts / Connections", qui sera diffusé par le serveur.

Je pense que mes deux solutions (vérification des messages publiés avant de diffuser, ou diffuser un événement par serveur après un appel RPC) tous deux brisent les spécifications Wamp.js. Ai-je tort ?

Merci

Était-ce utile?

La solution

Wamp différencie

  1. Authentification
  2. Autorisation
  3. Validation

Authentification établit l'identité d'un client WAMP dans un routeur WAMP.

Lors de l'utilisation Autobahn | python Pour rouler votre propre routeur Wamp, ici sont plusieurs exemples montrant comment implémenter différents mécanismes d'authentification.

Lors de l'utilisation Crossbar.io (un routeur WAMP de production intégré), les mécanismes d'authentification sont intégrés (ici).


Autorisation Détermine si un client WAMP donné est autorisé à effectuer une action WAMP (comme publier ou appeler) sur un URI donné.

Lors de l'utilisation Autobahn | python Pour rouler votre propre routeur Wamp, ici est un exemple montrant comment implémenter l'autorisation personnalisée.

Crossbar.io possède un schéma d'autorisation statique intégré et permet d'enregistrer les procédures WAMP personnalisées pour l'autorisation (ici).


Enfin, il y a Validation, qui vérifie la charge utile au niveau de l'application des événements ou des appels.

Ici est un exemple pour autobahn | python. Crossbar.io permettra bientôt d'enregistrer les procédures WAMP personnalisées pour la validation.


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