【问题标题】:How to authenticate django static file access?如何验证 django 静态文件访问?
【发布时间】:2020-05-15 08:44:50
【问题描述】:
我正在开发一个使用 DJANGO 基本身份验证的网站:django.contrib.auth
它工作正常,只有登录用户才能访问页面。但是,我发现身份验证不能应用于静态文件。
例如一页加载静态文件视频,用户需要登录才能查看但我可以使用f12查找路径。
http://example.org/static/media/test.mp4
在我注销用户后,我仍然可以使用上面的 url 直接访问静态文件而无需 auth。我尝试了几种方法,但它们都不起作用。是否可以将身份验证添加到静态文件路径?
【问题讨论】:
标签:
django
authentication
【解决方案1】:
使用 django 提供媒体文件
from django.conf.urls import patterns, include, url
from django.contrib.auth.decorators import login_required
from django.views.static import serve
from django.conf import settings
@login_required
def protected_serve(request, path, document_root=None, show_indexes=False):
return serve(request, path, document_root, show_indexes)
urlpatterns = patterns('',
url(r'^media/(?P<path>.*)$' % settings.MEDIA_URL[1:], protected_serve,
{'document_root': settings.MEDIA_ROOT}),
)