api校验

Posted guniang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了api校验相关的知识,希望对你有一定的参考价值。

服务端代码:

import hashlib
import time
KEY = RTYUIFGHJKVBNM


def gen_key(ctime):
    md5 = hashlib.md5()
    key = "|".format(KEY,ctime)
    md5.update(key.encode(utf-8))
    return md5.hexdigest()


class TestView(APIView):
    def post(self,request):
        print(request.data)
        # print(request._request.GET.get(‘KEY‘))
        key = request.query_params.get(key)
        ctime = request.query_params.get(time)
        now = time.time()
        if now - float(ctime) > 3:
            return Response(校验失败,Key超时)

        if key != gen_key(ctime):
            return  Response(校验失败)

        return Response(ok)

 

 

客户端代码:

import requests
import time
import hashlib

KEY = RTYUIFGHJKVBNM
data = k1:v1

def gen_key(ctime):
    md5 = hashlib.md5()
    key = "|".format(KEY,ctime)
    md5.update(key.encode(utf-8))
    return md5.hexdigest()

ctime = time.time()
key = gen_key(ctime)
time.sleep(3)
ret = requests.post(
    url=http://127.0.0.1:8000/app01/test/,
    data = data,
    params = key:key,time:ctime
)
print(ret.text)

 

以上是关于api校验的主要内容,如果未能解决你的问题,请参考以下文章

Web API使用记录系列OAuth授权与身份校验

api校验

身份验证api-实名认证查询校验接口及二要素接口

3Web Api 身份验证

使用WisdomTool RESTClient自动化测试REST API,如何取消对返回的body内容的校验?

利用DelegatingHandler实现Web Api 的Api key校验