Vue学习笔记rest_framework_jwt 学习

一  使用环境  

  开发系统: 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',
]
原文地址:https://www.cnblogs.com/djtang/p/13882523.html