仅向经过身份验证的用户显示pdf

2024-04-18 12:34:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在建立一个网站从旧的,我需要显示很多.pdf文件。在

我需要用户在看不到我的任何.pdf文件之前获得授权,但我不知道如何(我不能把我的pdf放在我的数据库中)。在

我用的是Python。在

谢谢你的帮助。在

如果你有任何问题,问我!:)


Tags: 文件用户数据库pdf网站
3条回答

您希望使用X-Sendfile头来发送这些文件。具体细节将取决于您使用的Http服务器。在

Paul对X-Sendfile的建议非常好——这确实是一个很好的方法来处理如何将文档返回给用户。(保罗+1)

至于前端,请这样做:

  1. 将您的PDF存储在web无法访问的位置(例如/安全)
  2. 提供一个看起来像/不安全的URL/文件名.pdf在
  3. 让您的HTTP服务器(如果是Apache,请参阅Mod Rewrite)将该链接转换为/normal/php/path/authenticator.php?文件=文件名.pdf在
  4. 在验证器.php确认文件存在,用户合法(即通过cookie),然后使用X-Sendfile返回PDF。在

这是我如何在塔架上做的尝试。我还没有测试这个,但应该有足够的链接让你去。在

  1. 在HTTP服务器上启用X-SendFile(正如Paul所说,实现取决于服务器):Apachemod_xsendfile,Nginxequivalent
  2. 将pdf放在Pylons安装的/public目录之外(我建议使用与Pylons目录相同级别的目录)
  3. 向站点添加某种身份验证和授权。Here是一篇关于如何使用repoze.who(身份验证)和{a5}(授权)的好文章
  4. 创建一个路由和控制器来处理你的PDF请求,这和其他路由和控制器一样。(即/pdfs/{filename}.pdf的路径)
  5. 如果一切都经过了正确的授权和身份验证,您就可以为您正在使用的x-sendfile(或等效文件)创建正确的头。在

相关问题 更多 >