我正在尝试建立一个必须进行身份验证的网站,即如果用户未登录,则仅显示登录页面。问题是如何以最小的成本实现它。我可以用
装饰每个 Viewpermission='authenticated'
其中“authenticated”是我的权限的名称;但也许有一种更简单的方法,默认情况下所有 View 都需要身份验证。
注意 我已经接受了下面的答案,但我相信还有更多内容。配置位:
config = Configurator(settings=settings,
default_permission='standard_view',
root_factory='RootFactory')
安全 - 权限位:
class RootFactory(object):
__acl__ = [(Allow, Authenticated, 'standard_view'),
(Allow, 'g:admin', 'admin_view'),
]
最佳答案
有一种方法可以通过在 Configurator
对象中设置 default_permission
来实现此目的。例如,在您的 __init__.py 中,您可以有类似的内容:
from pyramid.config import Configurator
def main(global_config, **settings):
config = Configurator(settings=settings, default_permission='authenticated')
config.include('pyramid_chameleon')
config.scan()
return config.make_wsgi_app()
您可以通过以下三个链接找到更多信息: http://docs.pylonsproject.org/docs/pyramid/en/latest/api/config.html http://docs.pylonsproject.org/docs/pyramid/en/latest/narr/security.html#setting-a-default-permission http://docs.pylonsproject.org/docs/pyramid/en/latest/api/config.html#pyramid.config.Configurator.set_default_permission
关于python - Pyramid 中的强制身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26476696/