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

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

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

猜你喜欢

转载自blog.csdn.net/pythonstrat/article/details/108281964