作为一种学习经历,我想建立一个以这种(简化)方式构建的网站:
如何使用Pyramid的__acl__
,RootFactory
和授权/身份验证功能实现此目标(基本用语)?每个网络如何拥有自己相对于用户帐户的基本登录/注销功能的权限?
我已多次阅读文档,我开始了解Pyramid安全性的工作原理;但是,我觉得我需要更具体的澄清。例如,为了创建最简单的登录功能,我是否需要在RootFactory中指定__acl__
,或者这只是定义各种组,无论谁可以登录?基本的东西,但也有足够的“不寻常”的情况,我可以看到它们如何融合在一起......
注意:我不是在找人写代码。我只是在一些我不理解的情况下寻找一些基本的规范。
感谢您的帮助。
答案 0 :(得分:3)
我最近在基于URL Dispatch的金字塔应用程序中添加了登录/身份验证/授权。我使用了一个官方教程(http://docs.pylonsproject.org/projects/pyramid/en/latest/tutorials/wiki2/authorization.html)中的一章。我在叙述文档的大型安全章节中更喜欢这个简洁的章节。如果您想使用Traversal,请从ZODB中创建Wiki的官方教程中选择相同的章节。
至少本章将回答有关基本登录/注销,创建用户/组,创建和应用基本ACL到RootFactory,保护具有权限的视图的问题。
为了解决您的网站结构,我建议使用Michael Merickels Tutorial(http://michael.merickel.org/projects/pyramid_auth_demo/index.html)。它将有关资源/安全性的文档中的概念应用于多个用例。我真的很喜欢它,也许你会受到启发。如果您回来询问有关这些用例的更具体问题,答案可能比您当前的问题更简单,更简洁。