7.接口文档,JWT介绍

【一】接口文档

1)公司使用

2)主要内容如下

  • 说明
  • 变更记录
  • 全局错误
  • 相关接口
    • 简要描述
    • 请求URL
    • 请求方式
    • 参数
    • 返回示例
    • 返回参数说明
    • 备注

3)字段生成(coreapi使用)

  • 安装

    pip install coreapi
    
  • 主路由内注册

    from rest_framework.documentation import include_docs_urls
    urlpatterns = [
        path('docs/', include_docs_urls(title='智慧社区项目')),
    ]
    
  • 视图类内写注解

    class BookModelViewSet(ModelViewSet):
        '''
        get:
        单行图书信息,
        
        post:
        添加图书
        '''
        queryset = Book.objects.all()
        serializer_class = BookModelSerializer
    
  • 全局配置 异常处理

    'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
    
  • 访问路径

    http://localhost:8000/docs
    

【二】JWT介绍

1)介绍

  • 与使用session机制,来存储记录用户登录信息
  • JWT(Json Web Token):常用于认证,是一个前端登录认证的方案,为token的一种方式

2)token认证机制

签发阶段:

  • token有三部分,每部由base64编码,在由.组合成字符串

    • 头部:一般为固定的信息,如公司信息、加密方式等

    • 荷载:真正的数据部分(用户id、名称、过期时间、签发时间等)

    • 签名:头部+荷载,并使用某种加密方式得到的字符串

  • 直接返回给前端,前端拿到后存到响应位置

    • web:存到cookie中

认证阶段:

  • 后端接收到前端携带在请求头中的token,进行校验
    • 将头部、荷载使用相同的方式加密
    • 在将其与拿到的token进行校验

【三】base64

import base64
import json

eg = {'name': 'ST1'}

# 编码
res = base64.b64encode(json.dumps(eg).encode())
print(res)  # b'eyJuYW1lIjogIlNUMSJ9'

# 解码
res = base64.b64decode(res).decode('utf-8')
print(res)  # {"name": "ST1"}
posted on 2024-08-14 21:04  晓雾-Mist  阅读(6)  评论(0编辑  收藏  举报