如何验证Django静态文件访问权限?

时间:2020-05-15 08:44:50

标签: django authentication

我正在开发一个使用DJANGO基本身份验证的站点:django.contrib.auth 它工作正常,并且只有登录的用户才能访问页面。但是,我发现auth无法应用于静态文件。

例如一页加载了静态文件视频,用户需要登录才能查看,但是我可以使用f12查找路径。 http://example.org/static/media/test.mp4

,注销用户后,我仍然可以使用上述url直接访问静态文件而无需auth。我尝试了几种方法,但是它们不起作用。可以将auth添加到静态文件路径吗?

1 个答案:

答案 0 :(得分:0)

使用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}),
)
相关问题