python - Pyramid 中的强制身份验证

标签 python pyramid

我正在尝试建立一个必须进行身份验证的网站,即如果用户未登录,则仅显示登录页面。问题是如何以最小的成本实现它。我可以用

装饰每个 View
permission='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/

相关文章:

python - 如何使用 Python 为 Azure 进行原始 REST 调用

python - Pyramid i18n 和 HTML5

python - 如何使用 Pyramid 优雅地处理 python 子进程

python - EOFError : marshal data too short

Python Lambda 计数/循环函数

python - 返回参数列表时出现奇怪的输出

python - 在 Pyramid 中使用 SQlAlchemy 声明性基础和 autoload=true

python 2.6 vs 2.7,用于 Pylons/Pyramid 项目

python - 如何从 SQLAlchemy JOIN 中的两个表返回结果?

python - 合并只有少数相同项目的 2 个数据框