| 12345678910111213141516171819202122232425262728293031323334353637 |
- from fastapi import Depends, HTTPException, status
- from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
- from app.core.config import settings
- from sqlalchemy.orm import Session
- from app.core.database import get_db
- from app.services.session_service import SessionService
- security = HTTPBearer()
- def verify_token(credentials: HTTPAuthorizationCredentials = Depends(security), db: Session = Depends(get_db)):
- """
- 全局鉴权依赖
- """
- user = session_service.get_user_by_token(db, credentials.credentials)
- if not user:
- raise HTTPException(
- status_code=401,
- detail="Invalid or expired session token",
- )
- return user
- def get_current_user(
- credentials: HTTPAuthorizationCredentials = Depends(security),
- db: Session = Depends(get_db)
- ):
- token = credentials.credentials
- user = SessionService().get_user_by_token(db, token)
- if not user:
- raise HTTPException(
- status_code=status.HTTP_401_UNAUTHORIZED,
- detail="Invalid or expired token"
- )
- return user
|