首页 > 其他分享 >接口文档与JWT

接口文档与JWT

时间:2023-02-09 21:22:50浏览次数:53  
标签:jwt base64 JWT 接口 token 文档

接口文档

接口文档的作用
    在前后端分离的项目中,我们写完后端后,我们很清楚有哪些接口、属性、编码方式、返回格式等,但是做前端的不清楚,所以就需要我们编写接口文档,将这些东西都写在里面
  
如何编写接口文档
    1.使用word或md编写接口文档
    2.使用第三方平台编写接口文档  如: https://www.showdoc.com.cn/item/index
    3.公司使用第三方开源自己搭建的的接口文档平台
    4.使用drf编写的接口可以自动生成接口文档
        swagger
        coreapi
         
使用coreapi自动生成接口文档步骤
    1.安装
    2.配置路由
        from rest_framework.documentation import include_docs_urls
        path('docs/', include_docs_urls(title='xx项目接口文档')),
    3.在视图类方法上写注释即可
        在类和类的方法上加注释,在序列化类或表模型字段上加help_text,required等
    4.配置文件配置
        REST_FRAMEWORK = {
     		'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',

    	}
    5.访问地址
        http://127.0.0.1:8000/docs

jwt介绍和原理

jwt 即cookie session token, 就是web方向的token使用

JWT由三部分构成
    头
        声明类型,这里时jwt
        声明加密算法,通常直接用HNAC SHA256
        公司信息等
    载荷 payload
        存放有效信息的地方
        过期时间
        签发时间
        用户id
        用户名
        ...
    签名 signature
        前两个部分通过密钥加加密方式得到的
        
JWT的开发重点在于登录接口签发token和认证类jwt认证

base64的编码和解码
    import base64
    import json
    dic = {'name': 'zyg', 'age': 18}
    dic_str = json.dumps(dic)
    # 做base64编码
    res = base64.b64encode(dic_str.encode('utf-8'))
    # base64编码后,字符长度一定是4的倍数,不是用=补齐,=不表示任何数据
    
JWT运行流程
    签发过程
        根据用户名密码在数据库中查到了用户名,且有载荷,那么就会根据加密方式和密钥生成签名
    认证过程
        同样是根据用户输入的信息与载荷生成签名并与之前生成的签名作比较,相同则验证通过,否则验证不通过直接返回

drf-jwt的快速使用

基于django + drf的开发平台有两个模块,jwt和simplejwt

使用步骤
    1.安装模块
    2.快速签发token,在登录接口路由中配置
        path('login/', obtain_jwt_token),
    3.用postman向http://127.0.0.1:8000/login/发送post请求,携带username和password

定制返回格式

1.编写函数jwt_response_payload_handler
    def jwt_response_payload_handler(tpken, user=None, request=None):
        return {
            'code': 100,
            'msg': '登录成功',
            'token': token,
            'username': user.username
        }
    
2.在项目的配置文件中配置
    JWT_AUTH = {
    	'JWT_RESPONSE_PAYLOAD_HANDLER': 'app01.utils.jwt_response_payload_handler',  
	}

jwt的认证类

1.在视图类上加认证类和权限类
    authentication_classes = [JSONWebTokenAuthentication]
    permission_classes = [IsAuthenticated]
    
2.postman测试
    请求头中key值为Authorization, value值为jwt + 空格 + token值

标签:jwt,base64,JWT,接口,token,文档
From: https://www.cnblogs.com/zyg111/p/17107082.html

相关文章

  • 接口文档和drf-jwt
    1接口文档#前后端分离 -我们做后端,写接口-前端做前端,根据接口写app,pc,小程序-作为后端来讲,我们很清楚,比如登录接口/api/v1/login/---->post--->usernam......
  • drf day09 接口文档、jwt快速使用、自定义jwt的登录返回数据格式
    一、接口文档1.前言​ 因为一般来说,项目都是前后端分离,我们作为后端工程师,就写接口就行,但是我们通过接口返回给前端的数据,前端可不知道都是些啥,所以就需要后端编写接口......
  • jwt原理以及使用
    jwt原理以及使用cookie和sessionJsonwebtoken(JWT),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC7519).该token被设计为紧凑且安全的,特别适......
  • drf-day9——接口文档、cookie.session.token发展史、jwt介绍及工作原理、drf-jwt模块
    目录一、接口文档使用coreapi自动生成接口文档步骤代码两点说明二、cookiesessiontoken发展史(彻底理解cookie,session,token,便于理解jwt)1、Cookie,Session,Token发展史2、......
  • 接口文档,jwt介绍和原理,drf-jwt快速使用,定制返回格式,jwt的认证类
    目录接口文档jwt介绍和原理drf-jwt快速使用定制返回格式jwt的认证类接口文档#前后端分离 -我们做后端,写接口-前端做前端,根据接口写app,pc,小程序-作为后端来......
  • drf之jwt
    接口文档#前后端分离 -我们做后端,写接口 -前端做前端,根据接口写app,pc,小程序 -作为后端来讲,我们很清楚,比如登录接口,api/v1/login/ ---》是post请求,发送use......
  • 接口文档 token发展史 jwt介绍和原理 drf-jwt快速使用
    目录昨日回顾认证权限频率全局异常处理接口文档接口文档编写drf自动生成接口文档cookies-session-token发展史jwt介绍和原理jwt的构成base64的编码和解码drf-jwt快速使用安......
  • drf(10)jwt
    1接口文档#前后端分离-我们做后端,写接口-前端做前端,根据接口写app,pc,小程序-作为后端来讲,我们很清楚,比如登录接口/api/v1/login/---->post---->us......
  • rest_framework_jwt源码分析
    rest_framework_jwt源码分析之序列化类序列化类classJSONWebTokenSerializer(Serializer):def__init__(self,*args,**kwargs): #这里是给序列化类的对象,添......
  • 37-接口interface
    类和接口对比◆普通类:只有具体实现◆抽象类:具体实现和规范(抽象方法)都有!◆接口:只有规范!只能定义方法,无法写方法体◆接口就是规范,定义的是一组规则,体现了现实世界......