Authentication

注意这里的认证方式的改变只会影响drf的view,设置一个Token认证方式就可用了

可以使用全局的DEFAULT_AUTHENTICATION_CLASSES来设置认证方式,也可以在每个视图中通过authentication_classes来设置。

BasicAuthentication
TokenAuthentication 另需在INSTALLED_APPS中增加rest_framework.authtoken
SessionAuthentication
RemoteUserAuthentication

源码实现

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

你可能感兴趣的:(Authentication)