jwt只是认证身份,而不是权限
首先,明确认证所用到的数据是在请求头中传过来的;只是判断有没有,而不会判断内容是否正确,因为判断数据内容是要依靠数据库的
对于每个访问,都会确认其身份;dev中除了jwt外,还保留了session/base的身份,即session是应对admin站点的,即admin站点使用session而不是jwt,为什么要用session而不是jwt?这是django框架选择的,而不是我们能干预的,至于为什么留着base,即根据用户名和密码来判断身份,又用户名密码怎么可能
GenericAPIView的request,
可以点出很多东西;
request
s.data,其中data被@property修饰,在内部将属性封装成字典返回
get_serializer()是模型对象的方法
- 给s增加属性context,为字典;其中,self为调用get_serializer的对象,即调用as_view的对象
{
'request': self.request,
'format': self.format_kwarg,
'view': self}
post/get….都有对应的扩展类实现,所以重点转移到序列化器上;序列化的字段,和对各字段校验
使用中一般是GenericAPIView与各扩展类配合使用,进而使用ListAPIView、CreateAPIView等等
CSRF与JWT对比
JWT:在后端生成
api_settings