Bonjour,
je suis actuellement en développement d'un tchat avec NodeJs et socket.io et mon problème est que je cherche à utiliser les sessions pour identifier mes utilisateurs (ils sont déjà connectés sur le site). $_SESSION['Auth']['username'] contient le nom d'utilisateur du membre. J'ai regardé plusieurs posts utilisant le framework Express mais les versions utilisées sont obsolètes. Est-il possible de le faire sans ce framework ? Ya t-il des docs ou tuto à jour ?

Merci et bonne soirée

11 réponses


antho07
Réponse acceptée

Bonjour, Quand tu parles de session, au vu de ta variable ton site est en php ?

Je suis curieux de voir la manière dont tu vas procéder pour utiliser la session php côté nodejs ... ce sont deux blocs séparés..

En terme d'architecture, sans rentrer dans des protocols d'identification stateless qui peuvent être complexe à mettre en place, on pourrait s'orienter vers le modèle suivant :

antho07
Réponse acceptée

si tu utilises socket io. Une fois la connexion effectuée tu envois un event à partir du client avec le token.

pour la récupération du token en js (php--->js) on peut "bêtement" l'afficher dans la page avec un echo '<script> var token="swdfsdùfmkdmlqk" </script>'; par exemple ou bien le récupérer via un appel ajax (ça coute un aller retour client serveur en plus)

Je ne comprends pas trop l'utilité de faire du Node/PHP...
Si tu as besoin d'utiliser les session avec node/express : https://github.com/expressjs/session

Enjoy

Je ne comprends pas trop l'utilité de faire du Node/PHP...

Il a son application PHP, il y intègre un t'chat qui utilise NodeJs et Socket.io, il ne va pas faire deux applications différentes alors que son t'chat est sur son site.

Evywell
Auteur

Je vous remercie énormément pour vos réponses. Je voudrais réaliser un tchat comme sur les sites Corobizar.fr et Gamingroom.tv. Il n'y a pas besoin de connexion supplémentaire au tchat du moment qu'on est connecté au site. Mais je ne sais pas comment les développeurs ont fait pour faire correspondre les utilisateurs du tchat et du site. Je suppose qu'ils ont utilisé les sessions (c'est pour ça que je demande comment les utiliser à partir de php) mais je ne suis pas sûr.
Pour ce qui est de l'architecture donné par antho07, je suppose qu'il faut utiliser le module mysql de nodeJs pour communiquer avec la base de donné. Mais comment transmettre ce token à Node ? (à moins que je n'ai compris :) )

Bonsoir,

L'idée est de faire transiter le token par le navigateur.

1) Le serveur php le génére et le stocke en base
2) Le serveur PHP l'envoit au navigateur client
3) Le navigateur client le récupère et l'envoi au serveur node
4) Le serveur node est capable à partir de ce token d'authenfier ou non l'utilisateur.

Evywell
Auteur

Encore merci de ta réponse rapide.
Ca a l'air d'être une très bonne idée, mais comment faire la partie 3) ? Je ne vois pas comment faire, je débute NodeJs et ne suis pas un fou en général (même si je maîtrise plutôt bien php) :p
Bonne soirée

Evywell
Auteur

Ou sinon je peux le stocker avec un cookie et le lire avec le framework express ? Ps: mauvaise manipulation pour la validation du sujet (le téléphone tout ça...)

Evywell
Auteur

Dernier petit problème : j'ai ajouter à ma div chatbox un attribut data-token qui contient le token de l'utilisateur. J'aimerais le récupérer coté serveur pour exécuter ma requête. Comment faire ?
Merci

Bonsoir..

Tu peux le récupérer en js et l'envoyer au serveur node une fois la websocket ouverte.

Evywell
Auteur

J'ai réussi à bidouiller un truc ^^ ça fonctionne pour le moment.
Je te remercie pour tes réponses ainsi que tes explications et je te souhaite une bonne soirée.

Gros Merci <3