可以使用全局的DEFAULT_AUTHENTICATION_CLASSES来设置认证方式,也可以在每个视图中通过authentication_classes来设置。
在为认证时会有:401 403的提示
BasicAuthentication
TokenAuthentication 另需在INSTALLED_APPS中增加rest_framework.authtoken
SessionAuthentication
RemoteUserAuthentication
django-oauth-toolkit
源码实现
drf的调用是获取authenticators,调用其authenticate方法,返回user auth
BasicAuthentication
获取HTTP_AUTHORIZATION头部 判断第一部分为basic
将第二部分base64解码 按:分开为 用户名 密码 调用authenticate认证
SessionAuthentication
获取django的原生request中的user
TokenAuthentication
获取HTTP_AUTHORIZATION头部
以第二部分为key,从rest_framework.authtoken.models.Token中查找并返回获取到的user
网友评论