drf框架中认证与权限工作原理及设置

drf框架中认证与权限工作原理及设置,第1张

概述0909自我总结 drf框架中认证与权限工作原理及设置 一.概述 1.认证 返回None = 游客 返回user,auth = 登录用户 抛出异常 = 非法用户 1)如果前台没有携带认证信息,直接定义 0909自我总结drf框架中认证与权限工作原理及设置一.概述1.认证

工作原理

返回None => 游客返回user,auth => 登录用户抛出异常 => 非法用户

前台对于用户信息进行的判断

1)如果前台没有携带认证信息,直接定义为游客

2)如果前台携带了认证信息并认证通过,定位为登录用户,将登录的用户user对象保存在 requset.user 中

3)如果前台携带了认证信息但没有认证通过,一般都定义为游客

4 ) 可以自定义为非法用户,抛出 认证失败 异常,但是不建议直接 *** 作,可以交给权限组件进一步处理rest_framework.exceptions 的 AuthenticationFailed

参数

BasicAuthentication : 基本认证

SessionAuthentication : session认证

2.权限

工作原理

返回False => 没有权限,将信息返回给前台返回True => 拥有权限,进行下一步认证(频率认证)

相关设置

AllowAny:允许所有用户IsAuthenticated:只允许登录用户必须request.user和request.user.is_authenticated都通过IsAuthenticatedOrReadonly:游客只读,登录用户无限制get、option、head 请求无限制前台请求必须校验 request.user和request.user.is_authenticatedIsadminUser:是否是后台用户校验 request.user和request.user.is_staff is_staff(可以登录后台管理系统的用户)二.局部设置

即在我们自定义的视图类开头设置

# 认证 下面不一定是[],也可以()就是需要在数组当中,多个类用,隔开# 局部取消认证组件:authentication_classes = []# 区别启用认证组件:authentication_classes = [认证类们] # 填写的参数BasicAuthentication,SessionAuthentication # 权限# 局部取消权限组件:permission_classes = []# 区别启用权限组件:permission_classes = [权限类们]# 填写的参数AllowAny

from rest_framework.authentication import SessionAuthentication,BasicAuthenticationfrom rest_framework.vIEws import APIVIEwfrom rest_framework.permissions import IsAuthenticated class 类名(APIVIEw):    authentication_classes = (SessionAuthentication,BasicAuthentication)    permission_classes = [IsAuthenticated,]	...........
三.全局设置

setting中设置

REST_FRAMEWORK = {    'DEFAulT_AUTHENTICATION_CLASSES': [        # django默认session校验:校验规则 游客 及 登录用户        'rest_framework.authentication.SessionAuthentication','rest_framework.authentication.BasicAuthentication',],'DEFAulT_PERMISSION_CLASSES': [        # 'rest_framework.permissions.AllowAny',# 全局配置:一站式网站(所有 *** 作都需要登录后才能访问)        # 'rest_framework.permissions.IsAuthenticated',}
四.失败返回的内容401 Unauthorized 未认证403 Permission DenIEd 权限被禁止 总结

以上是内存溢出为你收集整理的drf框架中认证与权限工作原理及设置全部内容,希望文章能够帮你解决drf框架中认证与权限工作原理及设置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1222936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存