[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))

上面是最原始的方法跟认证登陆用户名密码一样!

完毕!

posted @ 2016-03-23 17:14  CQ_LQJ  阅读(2224)  评论(0编辑  收藏  举报