增加 POST 方法 bili,获取传入的 ordered_string 参数,调用算法生成 sign 签名返回 :- import hashlib
- from flask import Flask, request, jsonify
- app = Flask(__name__)
- @app.route("/bili", methods=["POST"])
- def bili():
- """
- 请求的数据格式要求:{ "ordered_string":"......" }
- :return:
- """
- ordered_string = request.json.get("ordered_string")
- if not ordered_string:
- return jsonify({"status": False, "error": "参数错误"})
- # 调用核心算法,生成sign签名
- encrypt_string = ordered_string + "560c52ccd288fed045859ed18bffd973"
- obj = hashlib.md5(encrypt_string.encode('utf-8'))
- sign = obj.hexdigest()
- return jsonify({"status": True, "data": sign})
- if __name__ == '__main__':
- app.run(host="127.0.0.1",port=5000)
复制代码 postman 中调用 bili 方法示例:
通过调用 API 时传入的 token 参数值与授权码对比,验证用户是否具有API的访问权限:- import hashlib
- from flask import Flask, request, jsonify
- app = Flask(__name__)
- # 将授权码信息直接预存到字典中
- USER_DICT = {"fec22f96-2783-414a-a6e3-991d357c96e6":"李杨",
- "18bc44aa-76c9-43e7-a5c9-3aeb7884d6f1":"张三"}
- # 从文件中读取授权码信息存入字典中并返回
- def get_user_dict():
- info_dict = {}
- with open("db.txt",mode='r',encoding='utf-8') as f:
- for line in f :
- line = line.strip()
- print(line)
- token, name = line.split(",")
- print(token, name)
- info_dict[token] = name
- return info_dict
- @app.route("/bili", methods=["POST"])
- def bili():
- """
- 请求URL中携带/bili?token=...
- 请求的数据格式要求:{ "ordered_string":"......" }
- :return:
- """
- token = request.args.get("token")
- if not token:
- return jsonify({"status":False , 'error':"认证失败"})
- # 从文件中读取授权码的情况
- user_dict = get_user_dict()
- if token not in user_dict:
- return jsonify({"status":False , 'error':"认证失败"})
- # 从字典中读取授权码的情况
- if token not in USER_DICT:
- return jsonify({"status":False , 'error':"认证失败"})
- ordered_string = request.json.get("ordered_string")
- if not ordered_string:
- return jsonify({"status": False, "error": "参数错误"})
- # 调用核心算法,生成sign签名
- encrypt_string = ordered_string + "560c52ccd288fed045859ed18bffd973"
- obj = hashlib.md5(encrypt_string.encode('utf-8'))
- sign = obj.hexdigest()
- # 返回签名
- return jsonify({"status": True, "data": sign})
- if __name__ == '__main__':
- app.run(host="127.0.0.1",port=5000)
复制代码 授权文件名 db.txt ,授权文件内容如下:- fec22f96-2783-414a-a6e3-991d357c96e6,李杨
- 18bc44aa-76c9-43e7-a5c9-3aeb7884d6f1,张三
复制代码 postman 中调用带 token 认证的 bili 方法示例:
来源:豆瓜网用户自行投稿发布,如果侵权,请联系站长删除 |