完整电商项目 后台管理项目(drf):django-rest-framework-simplejwt实现登录功能

2022-08-24 09:59:46

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

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

  • 作者:我是py呀
  • 原文链接:https://blog.csdn.net/pythonstrat/article/details/108281964
    更新时间:2022-08-24 09:59:46