5

我在heroku上运行一个简单的登台环境,我现在正在寻找通过某种简单的身份验证来保护整个应用程序的密码

我想知道是否有一个简单的应用程序或中间件已经支持这个。尝试使用 Heroku / Cloudflare 和 django 寻找解决方案,但似乎没有什么是直截了当的。

Django 1.3.1

4

2 回答 2

15

django-lockdown正是为了这个目的而使用的。它允许您在整个开发站点上添加一个简单的密码,而无需在您的视图中添加任何在开发环境之外未使用的额外身份验证位。这也意味着您可以以管理员或普通用户身份登录以测试您的站点所做的任何事情

https://github.com/Dunedan/django-lockdown

settings.py我在我的文件中使用 Heroku 和 Lockdown 和这段代码

USE_LOCKDOWN = os.environ.get('USE_LOCKDOWN', 'False') == 'True'
if USE_LOCKDOWN:
    INSTALLED_APPS += ('lockdown',)
    MIDDLEWARE_CLASSES += ('lockdown.middleware.LockdownMiddleware',)
    LOCKDOWN_PASSWORDS = (os.environ.get('LOCKDOWN_PASSWORD', 'False'),)
    LOCKDOWN_URL_EXCEPTIONS = (r'^/some/url/not/locked/down/$',)

然后显然USE_LOCKDOWN在我的开发站点上将配置变量设置为 True,在我的生产站点上设置为 False,因此无需更改两者的代码。

于 2012-11-13T12:25:31.993 回答
0

Django 的身份验证框架具有内置实用程序@login_required,可帮助您使用密码保护视图功能(当然还有相应的“url”)。

像这样的用法:-

from django.contrib.auth.decorators import permission_required, login_required

@login_required
def view_organization(request, org_slug):
    """
    Only permit a logged in user to view the organization.
    """
    org = get_object_or_404(organization, slug=org_slug)
    org_users = organizationuser.objects.filter(organization=org,\
                                                organization__is_active=true)

    template = 'organizations/view_organization.html'
    template_vars = {'org_users': org_users, 'org': org}
    return render(request, template, template_vars)

对于高级访问控制,请使用@permission_required装饰器。

于 2012-11-13T10:14:33.997 回答