Express.js/Mangouste rôles d'utilisateur et les autorisations
Je suis entrain de créer un assez simple site avec le Noeud, de l'Express et de la Mangouste. Le site doit avoir des rôles d'utilisateur et les autorisations. Mes pensées sont que je vais valider les autorisations sur la base de l'interaction de l'utilisateur avec la base de données.
Dans la mangouste est-il un moyen de déterminer le type d'opération CRUD sont en train de mener, éventuellement, par un utilisateur?
Est-il possible sans l'aide de sessions?
J'ai trouvé une meilleure solution pour cela. Je vais maintenant utiliser express middleware pour vérifier les autorisations des utilisateurs avant la route est rendu. Parexemple
ouais, exactement. J'ai été à venir à ce point. Mais comment êtes-vous de suivi de l'utilisateur? Aussi, si vous avez la réponse, alors vous devriez poster ici pour les autres.
J'ai trouvé une meilleure solution pour cela. Je vais maintenant utiliser express middleware pour vérifier les autorisations des utilisateurs avant la route est rendu. Parexemple
app.get('/users', permissions.check('read', 'users'), func(){});
Ce milieu ware puis vérifie à l'encontre d'une des autorisations d'objet de config comme: roles.superAdmin = { id: "superAdmin", name: "Super Admin", description: "", resource : [ { id : 'post', permissions: ['create', 'read', 'update', 'delete'] } ] };
ouais, exactement. J'ai été à venir à ce point. Mais comment êtes-vous de suivi de l'utilisateur? Aussi, si vous avez la réponse, alors vous devriez poster ici pour les autres.
OriginalL'auteur tkiddle | 2014-06-18
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une solution. Il serait formidable d'entendre les peuples des opinions à ce sujet.
J'ai autorisations objet de configuration qui définit chaque rôle et de leurs autorisations.
Autorisations objet de config
Middleware fonction
Puis j'ai créé un middleware fonction, lorsque l' vérifier méthode est appelée, elle obtient le rôle des utilisateurs de la req objet (req.de l'utilisateur.rôle). Il examine ensuite les paramètres passés à la middleware et les références croisées avec celles dans les autorisations objet de config.
Route avec middlware
OriginalL'auteur tkiddle
C'est mon œuvre. Le code est réutilisable pour le client et le serveur. Je l'utilise pour mon express/angulaire site
dans app/both/both.js
Puis sur app/server/helper.js (loi comme adaptateur)
sur app/client/helper.js également agir en tant que carte.
OriginalL'auteur OMGPOP
J'ai personnellement pris l'inspiration de ghost. Dans ma config il y a perms, et
permissions.js
de l'exportation d'uncanThis
fonction que prendre de l'utilisateur actuellement connecté. Voici l'ensemble du projetPartie de mon fichier de config
Exemple d'utilisation:
Peut-être ce que j'ai fait n'est pas bon, mais ça marche bien aussi loin que je peux voir.
OriginalL'auteur Vinz243
Oui, vous pouvez y accéder que par le biais de la
request
argument.http://nodejs.org/api/http.html#http_message_method
Edit:
Mal lu votre question. Il serait probablement mieux d'attribuer les autorisations de l'utilisateur et de permettre l'accès à la base de données sur les autorisations. Je ne comprends pas ce que tu veux dire par valider par le biais de l'interaction avec la base de données. Si vous êtes déjà en leur permettant d'interagir avec la base de données et qu'ils n'ont pas les autorisations nécessaires pour le faire, n'est-ce pas un problème de sécurité?
OriginalL'auteur Michael
Vérifier le Nœud du module l'autorisation pour cette question. C'est assez simple concept, j'espère qu'ils vont permettre à toutes les méthodes CRUD trop.
OriginalL'auteur Tommz