[django]用户认证中只允许登陆用户访问(网页安全问题)
当设计一个重要网页时,一般要求未从登陆界面访问的用户不能进入其他页面,那么需要如何设置呢?
如下
django中的url.py
urlpatterns = [
url(r'^$', 'login.views.login_view', name='login_view'),
url(r'^keywork/$', 'keywork.views.keywork', name='keywork'),
url(r'^admin/', include(admin.site.urls)),
]
django中的view.py
from django.contrib.auth.decorators import login_required #django用户认证 @login_required(redirect_field_name='',login_url='/') def keywork(request):
login_required是一个快捷函数,作用是当前用户未认证的话直接返回到login_url?redirect_field_name页面下,将前面两个参数换成对应的值即"/"页面下
不使用该快捷函数,简单的方法如下:
from django.conf import settings from django.shortcuts import redirect def my_view(request): if not request.user.is_authenticated(): return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
上面是最原始的方法跟认证登陆用户名密码一样!
完毕!
study just for life!