码迷,mamicode.com
首页 > Windows程序 > 详细

装饰器api

时间:2017-10-04 00:20:08      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:port   float   date   time   hash   需要   iges   类型   rgs   

import hashlib

import time
from django.http import HttpResponse

key="qwrwertyuiop"
visited_key={
    #‘key‘:time
}


def api_auth(func):
    def inner(request,*args,**kwargs):
        server_float_ctime = time.time()
        auth_header_val = request.META.get("HTTP_AUTH_API")
        client_md5_str, client_ctime = auth_header_val.split("|", maxsplit=1)
        client_float_ctime = float(client_ctime)
        # 第一关时间
        if (client_float_ctime + 10) < server_float_ctime:
            return HttpResponse("时间太久了")
        # 第二关加密
        server_md5_str = md5("%s|%s" % (key, client_ctime,))

        if client_md5_str != server_md5_str:
            return HttpResponse("休想")

        # 第三关
        if visited_key.get(client_md5_str):
            return HttpResponse("you are late")

        visited_key[client_md5_str] = client_float_ctime

        return func(request,*args,**kwargs)
    return inner


def md5(arg):
    hs=hashlib.md5() #由于在python3中在update用的是字节类型所以需要把字符串变成字节
    hs.update(arg.encode("utf8"))
    return hs.hexdigest()

@api_auth
def test(request):
    # server_float_ctime = time.time()
    # auth_header_val=request.META.get("HTTP_AUTH_API")
    # client_md5_str,client_ctime=auth_header_val.split("|",maxsplit=1)
    # client_float_ctime=float(client_ctime)
    # #第一关时间
    # if (client_float_ctime+10) < server_float_ctime:
    #     return HttpResponse("时间太久了")
    # # 第二关加密
    # server_md5_str = md5("%s|%s" %(key,client_ctime,))
    # 
    # if client_md5_str != server_md5_str:
    #     return HttpResponse("休想")
    # 
    # #第三关
    # if visited_key.get(client_md5_str):
    #     return HttpResponse("you are late")
    # visited_key[client_md5_str]=client_float_ctime
    return  HttpResponse("正常用户")

  

装饰器api

标签:port   float   date   time   hash   需要   iges   类型   rgs   

原文地址:http://www.cnblogs.com/morgana/p/7624762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!