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

文章目录

  • jwt使用包:djangorestframework-simplejwt
    • 安装使用
    • 配置
  • jwt包实现登陆业务逻辑(深入包的源码)
    • 校验数据
      • 自定义返回结果
    • 获取数据
      • 内部验证还是使用 authenticate

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),
	}

完整电商项目--(十一)后台管理项目(drf)(2):django-rest-framework-simplejwt实现登录功能_第1张图片

  • 根据相应的配置,在路由当中引入(路由改成自己的路径)
    完整电商项目--(十一)后台管理项目(drf)(2):django-rest-framework-simplejwt实现登录功能_第2张图片

完整电商项目--(十一)后台管理项目(drf)(2):django-rest-framework-simplejwt实现登录功能_第3张图片
完整电商项目--(十一)后台管理项目(drf)(2):django-rest-framework-simplejwt实现登录功能_第4张图片

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

校验数据

我们 ctrl + b 进入源码,发现实现登陆的视图,就在这里,也具有一个 序列化器,帮助我们实现 对前端post的请求传递的数据进行处理,序列化与反序列化
完整电商项目--(十一)后台管理项目(drf)(2):django-rest-framework-simplejwt实现登录功能_第5张图片

  • 我们进入序列化器:这里就是提供了验证数据的功能
    完整电商项目--(十一)后台管理项目(drf)(2):django-rest-framework-simplejwt实现登录功能_第6张图片
  • 将返回上面的两个数据 refresh和 ‘access’

自定义返回结果

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

获取数据

  • 前面说过是 前端是发送POST请求,那么处理post请求是谁?我们注意到继承了一个类,就是它了,看它的源码:
    完整电商项目--(十一)后台管理项目(drf)(2):django-rest-framework-simplejwt实现登录功能_第7张图片
    这里具有处理请求的方法。他调用的序列化器,就是上面提到的序列化器。

内部验证还是使用 authenticate

完整电商项目--(十一)后台管理项目(drf)(2):django-rest-framework-simplejwt实现登录功能_第8张图片
重写这个方法就可以自定义验证了(前面讲过)。

你可能感兴趣的:(Django电商项目完整笔记,Django,drf,django)