如何保护 Django 中的静态 HTML 文件? (重定向前需要登录)

Posted

技术标签:

【中文标题】如何保护 Django 中的静态 HTML 文件? (重定向前需要登录)【英文标题】:How do I secure a static HTML file in Django? (Make login required before redirecting) 【发布时间】:2020-11-30 10:37:14 【问题描述】:

我正在使用 Django Admin 界面来允许管理员上传 html 文件,然后这些文件将存储在 'static/notebooks/file_name' 中。

使用下面的代码我可以重定向,但是如何在重定向之前要求登录并检查用户权限?我不能使用登录所需的装饰器,因为静态 html 文件没有与之关联的视图或模板。

<button type="button" class="btn btn-secondary btn-lg btn-block" style="margin: 1rem;"onclick="location.href='% static 'notebooks/BrightspaceGradebookUsage.html' %'">Python notebooks</button>

【问题讨论】:

【参考方案1】:

为了检查用户是否通过身份验证,尝试:

<button type="button" class="btn btn-secondary btn-lg btn-block" style="margin: 1rem;" % if user.is_authenticated % onclick="location.href='% static 'notebooks/BrightspaceGradebookUsage.html' %'" % endif %>Python notebooks</button>

【讨论】:

在这种情况下,用户仍然可以手动输入链接并访问它。

以上是关于如何保护 Django 中的静态 HTML 文件? (重定向前需要登录)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jwt 保护 express 中的静态文件夹

如何使用基于声明的授权保护 asp.net core 2.1 中的静态文件夹

如何从 Django 加载模型管理文件中的静态文件?

Django 获取静态媒体文件

在 Django 中,如何从扩展的 HTML 模板中链接静态文件?

如何返回通过django中的视图的静态文件?