【问题标题】:Best way to password protect arbitrary pages with arbitrary passwords in a Django site?在 Django 站点中使用任意密码保护任意页面的最佳方法是什么?
【发布时间】:2011-08-29 19:39:36
【问题描述】:

我有一个 Django 站点,人们可以在其中上传和共享他们的文件。每个文件都有自己的页面。我想让人们能够给每个文件一个密码,这样人们只有在输入正确的密码后才能查看该文件的页面。所以基本上,用户将转到文件的页面,如果该文件受密码保护,用户将看到“密码”表单而不是文件,一旦正确输入密码,用户就可以看到文件。用户只需输入一次密码也很重要。

我的第一直觉是在文件模型中添加一个“密码”字段,但我不确定让用户输入密码的最佳方法,一旦输入,让用户看到该文件的页面(我在想也许饼干会是最好的)。

这里有任何提示或最佳做法吗?有没有这样的应用程序?

【问题讨论】:

    标签: django passwords


    【解决方案1】:

    如果每个文件都有一个密码,那么将密码 hash 存储在文件模型中是合理的。我强烈建议您重新使用 django.contrib.auth 中的哈希方法,而不是自己滚动。

    为了在登录响应之外保持用户对文件的访问,您可以使用 Django 的内置会话框架:在会话对象中构建允许用户访问的文件列表。除非您希望同时为大量文件授权用户会话,否则这将很有效。

    请注意,您可以将会话设置为使用 cookie 作为后端,这还将为您提供 cookie 的加密签名,这可能比手动 cookie 更好。

    【讨论】:

      猜你喜欢
      • 2014-09-12
      • 2021-04-10
      • 1970-01-01
      • 2015-07-28
      • 2020-09-26
      • 2013-11-08
      • 2021-08-08
      • 1970-01-01
      • 2021-12-25
      相关资源
      最近更新 更多