IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Création d'un système de token


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 144
    Par défaut Création d'un système de token
    Bonjour,

    Je suis en train de réaliser un petit serveur avec Node.js, assez simple : il s'agit quasi uniquement de webservices (connexion, déconnexion, upload/download d'un fichier, changement de login en résumé). Etant donné que tous les webservices sont liés au compte d'un utilisateur, j'aimerais mettre en place un petit système de token.

    J'ai déjà réalisé des applications mobiles qui utilisent un tel système pour retenir le token et le renvoyer lors de l'utilisation des webservices pour identifier l'utilisateur (au lieu d'envoeyr à chaque fois les identifiants, on peut garder pendant une durée limité le token)... mais je n'ai jamais réalisé ni même vu comment fonctionner réellement un tel système.

    En réfléchissant rapidement, je me suis dis que je pourrais gérer ça en base de données, avec un table Token qui posséderait un id donné aux applis plus une date d'expiration et qui serait lié à la table Utilisateur. A première vue, comme ça, je dirais que ça fonctionne mais ce n'est probablement pas l'idéal.

    J'ai aussi l'impression de ré-inventer la roue, donc dans un premier temps, je souhaiterais savoir s'il n'y a pas un système efficace déjà présent dans node.js ?
    De même, est-ce qu'il existe un "modèle de conception", une "bonne manière" pour mettre en place un système de token fiable ?
    Sinon, que me conseillez-vous pour créer un petit système de token ?

    Merci d'avance !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Si j'ai bien compris, ce que tu cherches à faire est à l'image des systèmes de sessions utilisés pour le web :
    • L'utilisateur s'authentifie
    • Une session est créee (en base / en mémoire / dans un fichier) avec un ID (token / sessionId) qui l'identifie
    • Un cookie est posé avec ce token
    • Le cookie est renvoyé dans chaque nouvelle requête, ce qui permet de raccrocher la requête à l'utilisateur


    Pour la mise en place d'un système de ce type, tout dépend de ta conception. Comment l'utilisateur accède t-il à tes services ? via une page web, un client lourd (en TCP/HTTP ?), par l'intermédiaire d'un autre serveur ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 144
    Par défaut
    Oui c'est ça, tu as globalement bien résumé ce que je cherche à faire.
    Petite question d'ailleurs, par rapport à ce que tu as dis : en plus du token/sessionId, on utilise aussi les cookies pour faire le lien ?
    J'ai jamais trop regardé de près ce genre de système, surtout dans le web (comme dit plus haut, j'en ai utilisé un peu sur des applications mobiles où je recevait un token [juste un string] à la connexion, et que je renvoyait ensuite en paramètres aux services nécessitant d'être connecté).


    Pour ce qui est des détails, c'est un client lourd réalisé en C++ et installé sur la machine de l'utilisateur.
    Cette application communiquera avec le serveur Node.js à travers des webservices : en gros, des appels HTTP GET/POST et un retour en JSON.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Les cookie sont automatiquement inclus dans les requêtes HTTP vers le serveur qui les a posés. Donc ce système profite de cette caractéristique pour inclure le token dans un cookie, token qui sera donc automatiquement renvoyé à chaque requête vers le serveur. Côté serveur, il ne reste plus qu'à récupérer le token et à retrouver la session associée.

    Je ne sais pas quelle librairie/framework tu utilise côté client pour envoyer tes requêtes HTTP, mais si elle/il gère les cookies, je te conseille de t'orienter vers cette solution.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 144
    Par défaut
    Merci pour la suggestion, je verrais ça en temps voulu car je ne sais pas encore comment j'enverrais des requêtes HTTP depuis mon client lourd en C++.

    Par contre, le transport du token n'est pas vraiment un problème, c'est plutôt la génération et la gestion du token côté serveur.
    En PHP, je suppose qu'on utilise souvent le système de session, mais en Node.js je ne sais pas s'il existe un tel système.

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    La génération du token en javascript (ou node.js c'est la même) n'est pas tellement un problème, c'est juste que de toutes façons il te faudra le stocker côté serveur. Donc autant le faire de ce côté là dès le début, ce sera bien plus facile et bien plus pratique à manipuler par la suite.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème tutoriel Création d'un système RSS
    Par loopback dans le forum XMLRAD
    Réponses: 1
    Dernier message: 14/04/2008, 14h54
  2. création d'un système de plugin
    Par st20085 dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 05/02/2007, 23h37
  3. Réponses: 10
    Dernier message: 29/01/2007, 17h01
  4. [HashTable] Création d'un système de cache : Perte de données
    Par Resyek dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 20/11/2006, 18h29
  5. Création des tables système
    Par tarik75 dans le forum Oracle
    Réponses: 7
    Dernier message: 17/08/2006, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo