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 :

[Express] Pannel admin - Auth


Sujet :

NodeJS

  1. #1
    Membre confirmé Avatar de tonymx15
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Par défaut [Express] Pannel admin - Auth
    Bonjour à tous,

    Depuis quelque temps j'essaye d'apprendre Express (framework pour node.js). Cependant j'aurais voulue savoir comment faire pour gérer un pannel admin sur un site. J'ai réussi à créer un blog ou l'on peut ajouter et supprimer des articles mais je voudrais maintenant créer le système d'authentification (sans passer par basicAuth d'express) et créer un pannel d'admin. Pour le moment n'importe qui peut poster et supprimer...

    Quel serait la meilleur solution en terme technique (car bien évidemment en PHP ou JEE je vois comment procéder mais là...)?

    Anthony

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

    Tu peux t'y prendre de plusieurs façons.

    Tout d'abord, à la main. Tu peux dans ce cas utiliser les cookies et garder une variable de session par utilisateur connecté. Globalement,
    • Lors de la connexion d'un utilisateur, tu lui mets un cookie contenant une clef (sessionId) qu'il va renvoyer automatiquement au serveur à chaque requête.
    • Pour chaque sessionId, tu associes (en mémoire de ton programme ou dans un fichier ou en base de données, tout dépend ce que tu veux) un objet de session.
    • Lorsque l'utilisateur veut accéder à un service nécessitant une autorisation, tu regarde si un sessionId est transmis et si il est associé à un objet de session valide.

    Tu peux également établir des droits (par un système de rôles associés aux services et aux utilisateurs par exemple).

    Seconde manière de procéder : via une librairie tierce qui se charge de ça pour toi. Exemple : passport. L'avantage que tu bénéficies d'une couche d'abstraction dans la gestion de l'authentification. L'inconvénient est que ça t'impose une manière de faire. Mais tu n'as pas forcément besoin de réinventer la roue à chaque fois. Tu peux aussi étendre une librairie existante ou faire un wrapper.

    J'espère que ça t'aide un peu

  3. #3
    Membre confirmé Avatar de tonymx15
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Par défaut
    Merci pour ta réponse qui m'a beaucoup aider.

    J'aurais deux derniers conseils à te demander, au niveau des vues et routes, je dois donc créer un sous dossier dans /view nommé "admin" qui comportera toutes les views ou il est préférable de laisser dans le même dossier?

    Ma deuxième question est à propos des routes, dois-je en créer une pour chaque view? Par exemple pour la view index de l'admin, la view addPost de l'admin... ect...

    C'est pas encore très clair pour moi ce principe de route mais je pense que tu seras me répondre

    Anthony

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ce n'est pas facile de répondre à ta question : en fait, tout dépend de ton architecture, il n'y a pas de réponse absolue.

    En fait, le système de routes permet d'associer un path d'url (ex : /forum/javascript) à un traitement qui va se charger de prendre en charge la requête. Tu as donc le schéma suivant :
    • Tu émets une requête depuis ton navigateur. ex : http://domainebidon.org/blog/12
    • La requête arrive à ton application node.js et est prise en charge automatiquement par le module de routing de express.
    • Ledit module détermine quelle route correspond au path demandé (/blog/12).
    • Il exécute le traitement qui a été associé à cette route via une instruction du type

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    app.get('/blog/:id', function(request, response) {
        // le traitement en question
    });
    Ici, la route '/blog/:id' match avec le path demandé '/blog/12' et tu pourras récupérer dans ta requête l'id de l'entrée du blog demandée qui est 12.

    Généralement, tu as une route par URL et une URL par page HTML.


    Donc pour ton admin, tu peux fixer la convention d'avoir /admin au début des routes admin par exemple. Tu aura donc
    • /admin : la route d'index, matchant avec le path /admin
    • /admin/addPost : la route d'ajout d'un post qui matchera avec le path /admin/addPost
    • /admin/editPost/:idPost : la route de modification d'un post qui matchera avec les path du type /admin/addPost/12 (pour le post qui a pour id 12)
    • ...


    Pour ce qui est des fichiers, effectivement il me semble judicieux de faire deux fichiers de traitement de routes séparant la partie grand publique et la partie admin. Mais pareil, il n'y a pas de règles. Tu peux imaginer, si ta partie admin devient trop importante, de créer plusieurs fichiers pour cette partie, pour éviter que les fichiers ne deviennent trop gros et inexploitables.

    J'espère que ça éclairci le principe des routes

  5. #5
    Membre confirmé Avatar de tonymx15
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Juin 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Intégrateur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 140
    Par défaut
    Ok merci pour ta réponse.

    Je vais donc créer un fichier différent pour les routes du pannel admin...

    Thank's

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

Discussions similaires

  1. Visual express 2013 web membership admin asp.net
    Par Xeeder dans le forum Visual Studio
    Réponses: 1
    Dernier message: 14/11/2014, 10h59
  2. [1.x] Probleme template admin generator sfGuard Auth
    Par bambou74 dans le forum Symfony
    Réponses: 2
    Dernier message: 17/04/2013, 14h00
  3. Réponses: 2
    Dernier message: 29/09/2009, 14h16
  4. Expressions réguliéres
    Par Tooms dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2002, 18h42
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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