一:认证组件

  1、写一个类

class LoginAuth():
# 函数名一定要叫authenticate,接收必须两个参数,第二个参数是request对象
def authenticate(self, request):
# 从request对象中取出token(也可以从其它地方取)
token = request.query_params.get('token')
# 去数据库过滤,查询
ret = models.UserToken.objects.filter(token=token)
if ret:
# 能查到,说明认证通过,返回空
# ret.user就是当前登录用户对象,一旦retrun了,后面的认证类都不执行了
return ret.user,ret
# 如果查不到,抛异常
raise exceptions.APIException('您认证失败')

 

   2、使用与禁用

-局部使用:
-在视图类中加一行:
-authentication_classes = [LoginAuth, ]
-全局使用
-在setting中配置:
REST_FRAMEWORK={
'DEFAULT_AUTHENTICATION_CLASSES':['app01.MyAuth.LoginAuth',]
}
-局部禁用:
-在视图类中加一行:
-authentication_classes = []

  3、token表设置超时时间字段

token原理
-'adfasdfasd'
-'sdafasdfasf|{id:1,'name':}'
-'asdfasdasd|2'

二:权限组件

  1、权限是什么?

    就是只用超级用户才能访问指定的数据,普通用户不能访问,所以就要有权限组件对其限制

  2、写一个类

class UserPermission():
# message是出错显示的中文
message='您没有权限查看'
def has_permission(self, request, view):
user_type = request.user.user_type
# 取出用户类型对应的文字
# 固定用法:get_字段名字_display()
user_type_name = request.user.get_user_type_display()
print(user_type_name)
if user_type == 2:
return True
else:
return False

 

  3、使用与禁用

局部使用
在视图类中加一行:
permission_classes = [LoginAuth, ] 全局使用
在setting中配置
REST_FRAMEWORK={
'DEFAULT_PERMISSION_CLASSES':['app01.MyAuth.UserPermission',]
}
局部禁用
在视图类中加一行:
permission_classes = [ ]

最新文章

  1. 【代码笔记】iOS-点击任何处,出现城市
  2. H-Index I & II
  3. vue 2.0-1
  4. wpf 控件复制 克隆
  5. final, finally, finalize 的区别
  6. UML之轻松入门(3)-SRP做好厨子,让别人编程去吧
  7. Chapter 14_4 使用_ENV
  8. JavaScript实现动画效果
  9. python爬虫——爬取小说 | 探索白子画和花千骨的爱恨情仇(转载)
  10. Android Studio Gradle 多渠道自动打包,动态修改HostUrl,签名apk,混淆配置详解
  11. Numpy 系列(十一)- genfromtxt函数
  12. Touch365现已上架!
  13. docker 6 docker运行的底层原理
  14. test pthread code
  15. 2073: [POI2004]PRZ
  16. python 全栈开发,Day14(列表推导式,生成器表达式,内置函数)
  17. Swift 静态派发和动态派发
  18. 2015-09-21 css学习1
  19. Limu:有关JavaScript的那些值得一看的书
  20. ionic调用数据接口(post、解决 payload 问题)

热门文章

  1. MFC 课程总结
  2. UVA - 442 Matrix Chain Multiplication(栈模拟水题+专治自闭)
  3. Python学习第二阶段Day2,模块time/datetime、random、os、sys、shutil
  4. buf.writeInt8()函数详解
  5. 使用scrapy 爬取酷狗音乐歌手及歌曲名并存入mongodb中
  6. Python爬虫入门教程: 27270图片爬取
  7. top Universities in Mechanical Engineering
  8. 在设计DJANGO用户更改密码时,出现NoReverseMatch at /account/password-change/这种妖精如何办?
  9. nyoj_214_单调递增子序列(二)_201403182131
  10. The Evaluation of Determinant(求行列式mod一个数的值)