博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
「Django」rest_framework学习系列-用户认证
阅读量:4639 次
发布时间:2019-06-09

本文共 1200 字,大约阅读时间需要 4 分钟。

用户认证:

1.项目下utils文件写auth.py文件

from rest_framework import exceptionsfrom api import modelsfrom rest_framework.authentication import BaseAuthentication#还有4个类可以继承class BasicAuthentication(BaseAuthentication)  可以弹出登录框class SessionAuthentication(BaseAuthentication):class TokenAuthentication(BaseAuthentication):class RemoteUserAuthentication(BaseAuthentication):class Authtication(BaseAuthentication):    #用户认证类    def authenticate(self,request):        #源码方法重写        token = request._request.GET.get('token')        token_obj = models.UserToken.objects.filter(token=token).first()        if not token_obj:            raise exceptions.AuthenticationFailed('用户认证失败')        #在rest framework内部会将这两个字段赋值给request,以供后续使用        return (token_obj.user,token_obj)    #认证失败之后返回给浏览器的请求头    def authenticate_header(self,request):        pass

 

2、settings配置用户全局认证如下:

'DEFAULT_AUTHENTICATION_CLASSES':['api.utils.auth.Authtication',], #用户全局认证

3.views业务类可以在全局认证外设置单独认证规则

authentication_classes = [] #已设置全局认证,此处即空认证

4.源码认证流程图

 

5.匿名用户全局配置:

 
REST_FRAMEWORK = {
'UNAUTHENTICATED_USER':None, #匿名,request.user = None 'UNAUTHENTICATED_TOKEN':None, #匿名,request.auth = None }

转载于:https://www.cnblogs.com/wrxblog/p/10400106.html

你可能感兴趣的文章
2016北京集训测试赛(九)Problem C: 狂飙突进的幻想乡
查看>>
highcharts与highstock实例
查看>>
多重背包,附上例题(POJ - 1014 Dividing)
查看>>
HDU-5441-离线化并查集
查看>>
java 内存管理机制
查看>>
信号量sem 的用法
查看>>
C++重载、重写、重定义
查看>>
Chapter 2 Open Book——21
查看>>
华为设备ACL与NAT技术
查看>>
比较两个数据库表结构的差异
查看>>
CentOS6.5手动升级gcc4.8.2
查看>>
3.9 java基础总结集合①LIst②Set③Map④泛型⑤Collections
查看>>
Unix和Linux下C语言学习指南
查看>>
linux指令
查看>>
linux下面升级 Python版本并修改yum属性信息
查看>>
局域网内通讯APP
查看>>
Unity Shader 图片流光效果实现(纯计算方式)
查看>>
POJ 2002 Squares
查看>>
Java 内存分配
查看>>
ObjectDataSource控件执行Delete操作时,出现“未能找到带参数的非泛型方法”的解决方案...
查看>>