feat: api秘钥只能访问api接口,access token只能访问内部接口

This commit is contained in:
martsforever
2025-09-25 13:55:06 +08:00
parent 1ef96d533a
commit af63d44478
5 changed files with 27 additions and 16 deletions
+5 -12
View File
@@ -5,6 +5,7 @@ from fastapi.security import OAuth2PasswordRequestForm, OAuth2PasswordBearer
from jwt import InvalidTokenError
from sqlmodel import select
from starlette import status
from starlette.requests import Request
from app.config.env import env
from app.model.UserModel import RegistryUser, UserModel, UserValidate, PublicUser, UserService
@@ -154,16 +155,8 @@ def add_user_route(app: FastAPI):
# 获取用户信息接口
@app.get("/users/me")
async def _me(session: AsyncSessionDep, current_user: PublicUser = Depends(get_current_user)):
return await UserService.query_item(
session=session,
row_dict={"id": current_user.id},
)
# 订单查询接口
@app.post("/order")
async def _query_order(product_name: str, current_user: PublicUser = Depends(get_current_user)):
return [product_name]
async def _me(request: Request):
return request.state.user
# 用户登录信息验证处理,验证账号密码通过会返回用户信息,否则返回None
@@ -197,11 +190,11 @@ unauthorized_exception = HTTPException(
# 获取当前用户信息,通过注入的token来获取当前用户信息,如果token有效则返回用户信息,无效则抛出异常
async def get_current_user(session: AsyncSessionDep, token: str = Depends(oauth2_scheme)):
async def get_current_user(session: AsyncSessionDep, token: str):
try:
token_info: TokenInfo = CryptUtils.get_token_info(token)
username = token_info.get('username')
if not username or token_info.get('type') != 'access':
if not username:
raise unauthorized_exception
except InvalidTokenError:
raise unauthorized_exception