API数据格式认证方式框架及工具

本文涉及的产品
PolarDB Agent Express,2核4GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 本文详解API安全三大认证方式:轻量级API Key、无状态JWT令牌及金融级HMAC签名,配Python实战代码与最佳实践(如密钥管理、短期过期、防重放等),助开发者按场景选型,筑牢数据交互防线。(239字)

API安全是数据交互的核心保障。本文聚焦API认证的主流框架与工具,通过技术代码示例解析API Key、JWT令牌和HMAC签名三种核心认证方式。

一、API Key认证:轻量级身份验证
适用于内部系统或低风险场景,通过密钥实现身份确认。
代码示例:

import requests

response = requests.get(
    "https://api.example.com/data",
    headers={
   "Authorization": "ApiKey YOUR_SECRET_KEY"}  # 密钥需环境变量注入
)
  • 密钥严禁硬编码,推荐通过环境变量或KMS管理。
  • 仅适用于低敏感度场景,需配合HTTPS传输。

二、JWT(JSON Web Token)认证:无状态服务标配
适用于微服务、前后端分离场景,令牌自含用户权限信息。
代码示例:

from flask import Flask, request, jsonify
import jwt
from datetime import datetime, timedelta

app = Flask(__name__)
JWT_SECRET = "your_secret_key"

# 生成token
def create_token(user_id):
    payload = {
   
        "userId": user_id,
        "exp": datetime.utcnow() + timedelta(hours=1)
    }
    return jwt.encode(payload, JWT_SECRET, algorithm="HS256")

# 验证token装饰器
def token_required(f):
    def wrapper(*args, **kwargs):
        token = request.headers.get("Authorization")
        if not token:
            return jsonify({
   "error": "Token missing"}), 401

        try:
            token = token.split()[1] if "Bearer " in token else token
            data = jwt.decode(token, JWT_SECRET, algorithms=["HS256"])
            request.current_user = data
        except jwt.ExpiredSignatureError:
            return jsonify({
   "error": "Token expired"}), 403
        except jwt.InvalidTokenError:
            return jsonify({
   "error": "Invalid token"}), 403

        return f(*args, **kwargs)
    return wrapper

# 受保护接口
@app.route("/protected")
@token_required
def protected():
    return jsonify({
   "message": f"Hello User {request.current_user['userId']}"})

if __name__ == "__main__":
    print("Token:", create_token(123))
    app.run(debug=True)
  • 设置短期有效期(如1小时),避免令牌长期泄露风险。
  • 支持权限声明(如scopes字段),灵活控制资源访问。

三、HMAC签名认证:金融级安全防线
适用于高安全场景(如支付接口),通过签名防篡改与重放攻击。
代码示例:

import hmac
import hashlib
import base64

def generate_signature(data, secret):
    # HMAC-SHA256 签名 + Base64编码
    signature = hmac.new(secret.encode(), data.encode(), hashlib.sha256).digest()
    return base64.b64encode(signature).decode()

if __name__ == "__main__":
    data = "example_data_to_sign"
    secret = "your_secret_key"

    signature = generate_signature(data, secret)
    print(f"签名结果: {signature}")
    print(f"Authorization请求头: HMAC-SHA256 Signature={signature}")
  • 签名数据包含时间戳与随机数(如UUID),抵御重放攻击。
  • 必须配合HTTPS,确保传输过程不被篡改。

选择合适的API认证方式,是平衡安全与效率的关键。结合场景需求,搭配密钥管理、传输加密等实践,可构建坚不可摧的API安全体系。

目录
相关文章
|
1月前
|
弹性计算 小程序 API
外卖点餐系统开发:对接分账链,实现自动、灵活、合规分账
在外卖点餐系统(含小程序、APP、H5)开发中,支付分账是核心刚需,也是合规重灾区。典型场景里,一笔订单资金需拆分给商家(餐费)、骑手(配送费)、平台(服务费)、区域代理 / 品牌方(佣金) 等多方。随着监管收紧,央行 217 号文、市场监管总局外卖平台新规明确禁止 “二清”(无支付牌照归集资金后二次结算),违规平台面临50 万元以上罚款、暂停业务等处罚。而分账链分账系统却可以完美化解问题,为平台降本增效。
303 3
|
人工智能 运维 关系型数据库
智能运维+多模型服务能力,阿里云 RDS AI 助手旗舰版正式上线!
RDS AI 助手旗舰版在 RDS AI 助手专业版智能运维能力的基础上,提供灵活模型选择、智能模型路由、多模型灾备、API Key 集成等更自主可控、灵活便捷的模型服务,并支持纳管运维各类环境部署的数据库。
智能运维+多模型服务能力,阿里云 RDS AI 助手旗舰版正式上线!
|
1月前
|
机器学习/深度学习 自然语言处理 搜索推荐
大模型应用开发核心认知与技巧指引:从提示工程到智能Agent的完整实践.111
本文系统讲解大模型应用开发核心路径:从API调用基础,到提示工程(结构化指令、Few-shot、思维链CoT),再到高阶智能Agent(感知-思考-行动-反馈闭环)。强调“目标式编程”范式转变,聚焦如何驾驭大模型解决非结构化问题,助力开发者快速落地实用应用。
325 6
|
13天前
|
人工智能 监控 安全
AI客服真的能办事吗?91%的解决率是怎么跑出来的
AI客服解决率从行业平均的50%-60%跃升至91%,背后不是模型参数的堆叠,而是知识、流程、工具和运营四层能力的系统性重构。多数企业卡在"能回答"到"能办事"的跨越上,根源在于把AI客服当问答机器人用,而非当作可执行任务的服务岗位。拆解91.3%解决率的真实路径,关键在知识运营、流程拆解、工具调用和人机协同的闭环设计。
199 3
|
2月前
|
存储 运维 监控
SpringBoot集成Hera,分布式应用监控与追踪解决方案
Hera是一款由美团点评开源的**分布式应用监控与追踪系统**,专注于解决微服务架构下的性能监控、故障诊断和链路追踪问题。
325 4
|
1月前
|
人工智能 运维 安全
Windows10用户部署OpenClaw的终极指南|路径规范+权限配置+故障排查
专为Windows 10 64位深度优化的OpenClaw(小龙虾)一键部署包:免命令行、免环境配置,解压即装;内置全部依赖与28万Tokens,全程可视化操作;独家解决SmartScreen拦截、权限限制等Win10特有问题,新手也能一次成功“养虾”!
|
1月前
|
SQL 人工智能 自然语言处理
什么是低代码 v2.0 时代?JeecgBoot低代码用 Skills 把"一句话生成系统"做成了现实
一句话先说清楚:低代码 v1.0 阶段,是用"拖拽设计"代替"代码开发";低代码 v2.0 阶段,是用 AI Skills 把"拖拽设计"也省掉, 一句话生成功能。![低代码迈入 v2.0 时代 — Skills 加持一句话搭建系统](https://oscimg.oschina.net/osc
150 5
什么是低代码 v2.0 时代?JeecgBoot低代码用 Skills 把"一句话生成系统"做成了现实
|
2月前
|
前端开发 小程序 iOS开发
前端组件库——Vant Weapp知识点大全(二)
教程来源 http://lemci.cn Vant Weapp提供50+高质量小程序组件,涵盖按钮、单元格、图标、表单、布局、反馈与展示等核心类型,支持灵活配置、状态控制及iOS兼容优化;内置三种样式定制方案(解除隔离、外部类、CSS变量),兼顾易用性与主题深度定制能力。
|
13天前
|
机器学习/深度学习 人工智能 数据可视化
YOLO26如何涨点系列篇(NEU-DET缺陷检测) | CVPR2026 DEGConv方向引导边缘门控,破解细长裂缝检测难题 ,实现涨点
在NEU-DET数据集下验证:原始mAP50原始为 0.722提升至 0.732 , R 原始为 0.643 提升至 0.682 , mAP50-95原始为0.407提升至0.413
243 6