Discuss / Python / day 10 HTML-API-handler的衔接方式 和cookie的收发

day 10 HTML-API-handler的衔接方式 和cookie的收发

Topic source

alienation

#1 Created at ... [Delete] [Delete and Lock User]

HTML-API

通过写在register.html的js脚本将收集到的用户名和密码以submit方法发送request到服务器

API-handler

通过装饰器@post传入参数路径和方法找到对应handler api_register_user

api_register_user 对传入参数进行检查后生成摘要作为内部密码生成user实例传入数据库

并传回掩盖了密码的注册信息,响应在中间件整形(这里没用模板只是传了一个dict)后返回给客户端

在handlers=注册or登陆时创建一个由用户名、用户密码、有效时间、和配置文件中的神秘代码为参数的哈希摘要,作为response的一个head元素传给客户端,从此客户端的任何有效时间内request都必须携带这个cookie作为识别码,就好像是个人的防疫二维码一样,只有该码没有过期,且服务器解码为本人时才能通行,否则就返回一个错误响应或掩盖部分信息后返回响应

然后只要分别让handler对有user属性的request和没有user属性request做出不同的反应,针对cookie的逻辑就闭环了

alienation

#2 Created at ... [Delete] [Delete and Lock User]

源码的几个小问题

1:user2cookie的返回部分需要先赋给一个变量,然后返回该变量,否则报错

def user2cookie(user,max_age):
    # 根据用户信息创建session    expires = str(int(time.time() + max_age))
    s = '%s-%s-%s-%s' % (user.id,user.passwd,expires,_COOKIE_KEY)
    L = [user.id,expires,hashlib.sha1(s.encode('utf-8')).hexdigest()]
    s = '-'.join(L)
    return s

  • 1

Reply