jwt使用包:djangorestframework-simplejwt

安装使用

pip install djangorestframework-simplejwt

配置

  • 在Django settings中配置后端
REST_FRAMEWORK = {
    ...
    'DEFAULT_AUTHENTICATION_CLASSES': (
        ...
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    )
    ...
}
SIMPLE_JWT = {
	# 配置jwt有效期
	'ACCESS_TOKEN_LIFETIME': timedelta(days=1),
	}

在这里插入图片描述

  • 根据相应的配置,在路由当中引入(路由改成自己的路径)
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

jwt包实现登陆业务逻辑(深入包的源码)

校验数据

我们 ctrl + b 进入源码,发现实现登陆的视图,就在这里,也具有一个 序列化器,帮助我们实现 对前端post的请求传递的数据进行处理,序列化与反序列化
在这里插入图片描述

  • 我们进入序列化器:这里就是提供了验证数据的功能
    在这里插入图片描述
  • 将返回上面的两个数据 refresh和 ‘access’

自定义返回结果

自定义视图和序列化器继承自上面两个。 然后 多加入自己想要返回的数据就可以了

获取数据

  • 前面说过是 前端是发送POST请求,那么处理post请求是谁?我们注意到继承了一个类,就是它了,看它的源码:
    在这里插入图片描述
    这里具有处理请求的方法。他调用的序列化器,就是上面提到的序列化器。

内部验证还是使用 authenticate

在这里插入图片描述
重写这个方法就可以自定义验证了(前面讲过)。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐