在通常情况下,网站都会对用户限制访问,例如,未登录的用户不可访问用户中心界面。Djagno框架中使用request.user.is_authenticated属性、装饰器login_required和LoginRequiredMixin类三种方式限制用户访问。接下来,对这三种限制用户访问的方式进行介绍。
成都创新互联公司长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为阜阳企业提供专业的成都网站设计、网站制作、外贸营销网站建设,阜阳网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
request.user.is_authenticated属性用来判断用户是否通过验证,它是限制未登录用户访问的原始方式,如果用户未通过验证则跳转到登录页面。示例代码如下:
from django.conf import settings
from django.shortcuts import redirect
class UserInfoView(View):
def get(self, reuqest):
if not request.user.is_authenticated:
return redirect('%s?next=%s' % (settings.LOGIN_URL,
request.path))
装饰器login_required用于在视图层面限制用户访问,它有两个参数:login_url和redirect_field_name,其中参数login_url表示重定向地址,默认为None;参数redirect_field_name表示重定向字段名称,默认值为“next”,该值保存了用户成功验证时浏览器跳转的重定向地址。
例如,若用户未登录,访问用户中心页面(userinfo.html)时使网站跳转到登录页,代码如下:
@login_required(login_url='/login/',redirect_field_name='my_redirect')
def user_center(request):
return render(request, 'userinfo.html')
装饰器中通过login_url参数设置的重定向地址也可以在配置文件中通过LOGIN_URL项设置,示例如下:
LOGIN_URL = '/login/'
需要注意,参数login_url会优先在装饰器中查找设置的重定向地址,若未找到则使用在配置文件中设置的重定向地址。
使用LoginRequiredMixin类同样可在视图层面限制用户访问,该类的具体用法为:从django.contrib.auth.mixins模块中引入LoginRequiredMxin,定义继承LoginRequiredMxin类的类视图,在其中设置重定向地址login_url,示例代码如下:
from django.contrib.auth.mixins import loginRequiredMixin
class UserInfoView(LoginRequiredMxin, View):
login_url = '/login/' # 设置重定向地址
def get(self, request):
return render('userinfo.html')
需要注意,LoginRequiredMixin类必须位于类视图基类列表的最左侧。此外,参数login_url与装饰器login_required中参数login_url使用方式一致。
当前名称:Web请求认证中限制用户访问有几种方式?
本文路径:http://www.shufengxianlan.com/qtweb/news10/514760.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联