feat: 悬挂ICP备案号,修复验证码、500登录、/admin Failed to Fetch,优化首页编辑器100%全屏平铺

This commit is contained in:
Chen Xiao
2026-06-01 15:28:18 +08:00
parent 7fec1aa9fd
commit 038ce9e831
12 changed files with 609 additions and 59 deletions
+13 -7
View File
@@ -1,8 +1,7 @@
from datetime import datetime, timedelta
from typing import Optional
from jose import JWTError, jwt
from passlib.context import CryptContext
from fastapi import HTTPException, Security, Depends
from fastapi import HTTPException, Depends
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
import db
@@ -10,15 +9,22 @@ SECRET_KEY = "your-secret-key-change-in-production"
ALGORITHM = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES = 60 * 24
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
security = HTTPBearer()
optional_security = HTTPBearer(auto_error=False)
def verify_password(plain_password, hashed_password):
return pwd_context.verify(plain_password, hashed_password)
import bcrypt
def get_password_hash(password):
return pwd_context.hash(password)
# 使用原生 bcrypt 进行密码校验,解决 passlib 与 bcrypt 5.x 的兼容性问题
def verify_password(plain_password: str, hashed_password: str) -> bool:
try:
return bcrypt.checkpw(plain_password.encode('utf-8'), hashed_password.encode('utf-8'))
except Exception:
return False
# 使用原生 bcrypt 生成密码哈希
def get_password_hash(password: str) -> str:
salt = bcrypt.gensalt()
return bcrypt.hashpw(password.encode('utf-8'), salt).decode('utf-8')
def create_access_token(data: dict):
to_encode = data.copy()