当前位置: 首页 > news >正文

Python Flask框架入门_2.API增加授权验证

直接访问API返还结果:

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)

在网站中输入编码进行解密:

image

基于文件进行授权:

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='utd-8')as f:for line in f :line = line.strip()token,name =line.strip(",")info_dict[token] = namereturn  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':"认证失败"})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)

 加入token进行认证:

image

 

http://www.zskr.cn/news/263.html

相关文章:

  • 12.2 类的派生
  • NOIP2025专题-图论2 专题简记
  • 在疼痛中,在喧嚣 失聪与惶惑中
  • 开发手记(二)——图片转换成base64编码
  • Overpass – TryHackMe
  • 浅拷贝和深拷贝两种不同的对象复制
  • NPU前端编译器常见的优化
  • ABC393E
  • ABC393D
  • ZR 25 noip D1T2 题解 | 最短路
  • NOIP2024 退役记
  • LG11311
  • CF1746F
  • C#.NET EFCore.BulkExtensions 扩展详解
  • 2025AI赋能HR新纪元,中国AI HR主流厂商大盘点
  • 私有化部署Dify构建企业AI平台教程
  • 树状数组板子2
  • NOIP 集训日记
  • 记录---让网页像现实世界一样“拿起来,放进去”
  • Ubuntu22.04安装Docker过程记录
  • MySQL多表查询
  • 软件工程导论第一次作业
  • 闲话 25.9.8
  • The 2025 ICPC Asia East Continent Online Contest (I)
  • Ubuntu22.04下Docker的安装Docker镜像源问题解决方法
  • 【项目实战】基于Hi3861的鸿蒙智能小车(循迹、超声波避障、远程控制、语音控制、4G定位)有教程代码
  • 【项目实战】基于Hi3861的鸿蒙智能小车(循迹、超声波避障、远程控制、语音控制、4G定位)有教程代码
  • 新手小白如何快速入门PostgreSQL
  • Linux Strace 系统调用工具详解与企业应用
  • 想进大厂?从学习圈子里的“管理术语”开始