一 使用环境
开发系统: windows
后端IDE: PyCharm
前端IDE: VSCode
数据库: msyql,navicat
编程语言: python3.7 (Windows x86-64 executable installer)
虚拟环境: virtualenvwrapper
开发框架: Django 2.2
二 Vue学习笔记Django-rest_framework_jwt 学习
Django-rest_framework_jwt 是 Django-rest_framework 第三方写的jwt,不等同于jwt.
流程:
1,用账号密码登录接口,登录接口逻辑中调用签发的token算法,得到token,返回给客户端,客户端自已存到cookies中
2.校验token的算法应该写在认证类中(在认证类中调用),全局配置给认证组件,所有视图类请求,都会进入认证校验,所以请求带了token,就会反解出user对象,在视图类中用request.user就可以访问登录用户
注:登录接口需要做认证+权限局部禁用
三 Django-rest_framework_jwt
- 三段:头,荷载(用户信息),签名
- 使用:最简单方式(在路由中配置),path("login/",obtain_token)
- 自定制:多方式登录,手动签发token(两个方法:jwt_payload_handler,jwt_encode_handler)
- 自定制基于jwt的认证类
- -取出token
- -调用jwt提供的解析出payload的方法(校验是否过期,是否合法,如果合法,返回荷载信息)
- -转成user对象
- -返回
1.按装配置 rest_framework_jwt
pip install djangorestframework-jwt
settings.py
INSTALLED_APPS = [ 'django.contrib.admin',# admin依赖 'django.contrib.auth',# admin依赖 'django.contrib.contenttypes',# admin依赖 'django.contrib.sessions',# admin依赖 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', # 按装包:djangorestframework 'rest_framework_jwt', # 按装包:djangorestframework-jwt 'corsheaders', # 跨域设置4-(1-2):按装,注册跨域包(django-cors-headers),中间件中注册 'A001qyyh.apps.A001QyyhConfig', 'A002ywxx.apps.A002YwxxConfig', ]