41 votes

Authentification des utilisateurs dans Pyramid

Je suis en train de construire une application web et je devais choisir entre Django et Pyramid. J'ai décidé de choisir Pyramid.

Je crois savoir que Pyramid est livré avec son propre cadre d'authentification et d'autorisation, qui semble intéressant. Mais je n'ai vu nulle part dans Pyramid où les utilisateurs/groupes/permissions sont définis. Dans Django, ces choses sont gratuites.

J'utilise SQLAlchemy et je me demandais s'il existait des utilisateurs/groupes/permissions similaires déjà construits que je pourrais importer. Je préfère ne pas définir moi-même ces objets/mappings et le hachage/salage des mots de passe.

Définitions de Django de ces choses sont à peu près tout ce dont j'ai besoin.

Quelqu'un peut-il m'indiquer quelque chose à utiliser ? Ou dois-je créer mon propre système ?

64voto

Michael Merickel Points 15315

Pyramid dispose d'un système d'authentification beaucoup plus souple. Et oui, si vous voulez quelque chose de simple comme le concept utilisateur/groupe/permission de Django, alors flexible peut être effrayant.

Pyramid n'a pas d'objet "User", car il ne fait aucune hypothèse sur la façon dont vous stockez vos données ou sur l'ORM que vous utilisez, donc il n'y a pas quelque chose pour vous comme contrib.auth. Vous devrez hacher/saler les mots de passe vous-même en utilisant une bibliothèque telle que cryptacular ou passlib, toutes deux trouvées sur PYPI.

En ce qui concerne les droits des utilisateurs/groupes/permissions dans le système Pyramid, il suffit de définir une RootFactory dotée d'une fonction __acl__ qui associe les groupes aux autorisations. Les permissions sont attribuées aux vues, et sont donc généralement statiques. Si vous souhaitez que les groupes (ce que Pyramid appelle les "principals") soient dynamiques, c'est également possible.

Je suggérerais d'examiner la pyramide tutoriel wiki2 ainsi que le démo de la fusillade .

Il existe également quelques paquets tiers pour aider à l'autorisation dans Pyramid si vous prévoyez d'utiliser SQLAlchemy. apex est une solution plus complète, et Fondations de la ziggourat est une couche inférieure à SQLAlchemy qui vous aide à configurer des utilisateurs et des groupes pour votre application.

Votre question est d'un niveau assez élevé et l'autorisation est un "problème difficile", je vais donc m'arrêter ici et éviter de régurgiter les tutoriels et les ressources qui existent déjà, depuis les tutoriels Pyramid jusqu'à plusieurs exemples de tierces parties. Si vous avez des questions spécifiques, n'hésitez pas à les poser dans une autre question.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X