From 078e77c4ea5327b60217b400d70fd9c0ba25e293 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 19 Aug 2026 10:11:59 +0800 Subject: [PATCH] =?utf8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=99=BB=E5=BD=95?= =?utf8?q?=E9=89=B4=E6=9D=83(=E5=8D=95=E7=94=A8=E6=88=B7=20Simba),=20?= =?utf8?q?=E6=9C=AA=E7=99=BB=E5=BD=95=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8;?= =?utf8?q?=20=E5=90=8E=E7=AB=AF=20HMAC=20token=20+=20=E4=B8=AD=E9=97=B4?= =?utf8?q?=E4=BB=B6=E4=BF=9D=E6=8A=A4=20/api/*,=20=E5=89=8D=E7=AB=AF?= =?utf8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E4=B8=8E=E8=B7=AF=E7=94=B1=E5=AE=88?= =?utf8?q?=E5=8D=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- backend/main.py | 75 +++++++++++++++++++++++++- frontend/src/App.js | 9 +++- frontend/src/api.js | 23 +++++++- frontend/src/auth.js | 45 ++++++++++++++++ frontend/src/components/Home.css | 21 ++++++++ frontend/src/components/Home.js | 10 ++-- frontend/src/components/Login.css | 78 +++++++++++++++++++++++++++ frontend/src/components/Login.js | 54 +++++++++++++++++++ frontend/src/hooks/useOnlineStatus.js | 6 ++- frontend/src/index.js | 5 +- 10 files changed, 317 insertions(+), 9 deletions(-) create mode 100644 frontend/src/auth.js create mode 100644 frontend/src/components/Login.css create mode 100644 frontend/src/components/Login.js diff --git a/backend/main.py b/backend/main.py index a63f592..bb0c47b 100644 --- a/backend/main.py +++ b/backend/main.py @@ -1,8 +1,12 @@ -from fastapi import FastAPI, HTTPException, Response +from fastapi import FastAPI, HTTPException, Response, Request +from fastapi.responses import JSONResponse from fastapi.middleware.cors import CORSMiddleware import sqlite3 import os import datetime +import hmac +import hashlib +import base64 import urllib.request import urllib.parse import urllib.error @@ -20,12 +24,68 @@ app.add_middleware( allow_headers=["*"], ) +# --- 登录鉴权中间件:除 /api/auth/login 外,所有 /api/* 必须带有效 token --- +# token 来源:Authorization: Bearer (axios 请求)或 ?token=(/