【问题标题】:Django 1.8: Password Protect Entire ProjectDjango 1.8:密码保护整个项目
【发布时间】:2015-12-17 11:16:27
【问题描述】:

我已经构建了我的第一个 Django 应用程序!它旨在帮助我的企业跟踪库存。因此,我不希望它公开。

也许有一天我会设置多个用户帐户等,但现在我真的只需要一个基本的密码门来启动和运行它。

有没有人有任何适用于此的中间件?我发现的所有解决方案都很老旧,而且它们似乎不适用于最新版本的 Django。

【问题讨论】:

  • 什么意思?中间件有什么用?
  • 我见过一些使用自定义中间件的解决方案,它们强制我输入密码才能访问我的网站,但它们适用于旧版本的 Django。
  • 基本,你想要@login_required 在所有应用程序中?
  • 阅读这篇文章,也许可以修复它。 stackoverflow.com/questions/2164069/…
  • 谢谢,那个帖子已经有 5 年历史了。我一直在搞乱它以尝试让它工作,但我一直卡在重定向循环中。

标签: django django-settings


【解决方案1】:

如果您只需要一对用户名/密码,那么在您的网络服务器配置中直接通过 HTTP 身份验证进行处理将是实现此目的的最简单方法。这种方法的好处是:

  1. 您可以在 5 分钟内完成设置:example with nginx,例如 apache
  2. 您不必编写稍后会删除的代码
  3. 它将保护您的所有网站,包括静态文件、第三方应用程序、管理员等。

【讨论】:

  • 哈,我是在避免这种情况,因为我下班并使用 Elastic Beanstalk 来避免学习任何有关配置网络服务器的知识:D 你当然是对的,这是最好的方法,我必须弄清楚如果 Django 中没有简单的解决方案,那就解决吧。
  • 您最终可能会使用中间件获得一个有效且干净的解决方案。但是,如果您想将项目部署到其他地方,了解一点 Web 服务器配置将被证明是有用的。即使您没有成为系统管理员,了解如何安装和基本配置 Web 服务器也是一项有用的技能。另一种选择是使用 django 的内置身份验证系统,只需一个用户名,decorate all your urls with the login_required decorator
  • 这确实是一项有用的技能,而且它肯定在我的清单上。我花了几天的时间试图弄清楚,并且完全沮丧,所以我想有一天我必须有人给我看。不过,装饰 URL 选项看起来很简单!出于某种原因,我认为您只能装饰视图。
  • 为了使用网络服务器设置 django,我推荐使用 the following tutorial 的 nginx。基本上,您可以装饰视图和单个 URL。使用我在之前评论中提供的链接,似乎有办法装饰包含的 URL,这使得任务更容易。
  • 谢谢!我会为该教程添加书签,以防我有时间再试一次。到目前为止,让这个命名空间技巧发挥作用并不走运,但我希望我能弄明白,因为我有大量的 URL。
【解决方案2】:

我在这里找到了一个对我有用的答案:

@login_required for multiple views

确保LOGIN_REQUIRED_URLS_EXCEPTIONS 路径正确设置为您的登录页面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2015-08-11
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    相关资源
    最近更新 更多