DRF(django restframework)自带用户的认证,可以分方便的区分是否是登录用户,所有使用DRF的视图都可以使用。
认证功能有了两种配置方式,一种是全局配置,一种是局部配置。
全局配置
顾名思义,全局配置写在django的settings文件中,对项目中的所有继承子APIView的视图都起作用,配置如下:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication', # 基本认证
'rest_framework.authentication.SessionAuthentication', # session认证
)
}
局部配置
有时候我们需要对某些视图进行认证和权限校验,所以需要给需要都额视图添加认证功能,APIView拥有一个属性
authentication_classes,接收一个元祖,或者列表,列表内填写要进行认证的方式。
from rest_framework.authentication import SessionAuthentication, BasicAuthentication
from rest_framework.views import APIView
class ExampleView(APIView):
authentication_classes = (SessionAuthentication, BasicAuthentication)
认证失败会有两种可能的返回值:
- 401 Unauthorized 未认证
- 403 Permission Denied 权限被禁止
认证功能需要配合权限和限流进行使用