标签:先来 自己 密码加密 ati ESS 总结 获取 self 对象
REST framework模块
【验证】
使用方法:
django的视图需要时CBV格式。
class MyAuthentication(object): def authenticate(self,request): token = request._request.GET.get(‘token‘) if not token: raise exceptions.AuthenticationFailed(‘用户认证失败‘) return (‘alex‘,None) def authenticate_header(self,val): pass class DogView(APIView): authentication_classes = [MyAuthentication,] #源码中会将列表中的元素循环并类实例化,然后通过封装request,这个列表会在request中 def get(self,request): return HttpResponse(‘get‘)
上面代码就是django rest framework的认证。
REST_FRAMEWORK = { "DEFAULT_AUTHENTICATION_CLASSES":[‘api.utils.auth.FirstAuthtication‘,‘api.utils.auth.Authtication‘ ], #"UNAUTHENTICATED_USER":lambda : "匿名用户", "UNAUTHENTICATED_USER":None, "UNAUTHENTICATED_TOKEN":None" }
如上,列表中写了两个验证类的对象,这种全局配置不能再将验证类写到view.py中,需要单独创建一个配置文件,然后将类的路径写到settings中,如果在全局的情况下某个视图不想用认证(比如登陆),只需在视图类中添加
from rest_framework.authentication import BaseAuthentication
源码逻辑分析:
user方法通过porperty可以用点来调用,
具体的验证方法,一共三种返回值类型:
01有返回值,必须是元组(request.user,request.auth)
02验证失败抛出异常,然后执行self._not_authenticated
03返回None,当前认证不处理交给下一个认证处理。如果所有验证都没有返回值,执行self._not_authenticated
django提供默认匿名用户的request.user和request.auth
下面为匿名用户函数具体代码
验证成功执行具体的视图函数方法。
Django REST framework使用及源码分析之验证
标签:先来 自己 密码加密 ati ESS 总结 获取 self 对象
原文地址:https://www.cnblogs.com/ArmoredTitan/p/8799129.html