feat:增加权限控制

This commit is contained in:
2025-09-23 15:01:34 +08:00
parent f07b23b825
commit 6977463918
11 changed files with 227 additions and 6 deletions

View File

@@ -1,6 +1,7 @@
from fastapi import FastAPI
from .blog import router as blog_router
from .session import router as session_router
def register_routers(app: FastAPI):
app.include_router(blog_router, prefix="")
app.include_router(blog_router, prefix="")
app.include_router(session_router, prefix="")

Binary file not shown.

View File

@@ -3,6 +3,7 @@ from typing import List
from fastapi import APIRouter, Depends, Query, Request
from sqlalchemy.orm import Session
from config.auth import verify_token
from schemas.blog import BlogResponse, BlogQuery, BlogCategoryResponse, BlogStatsResponse, \
BlogLatestResponse, BlogCommentCreate, BlogCommentResponse, BlogVisitResponse, BlogCreate, BlogUpdate
from schemas.pagination import PageResult
@@ -35,17 +36,17 @@ def query_blog_by_id(blog_id: int, db: Session = Depends(get_db)):
@router.post("", summary="新增博客内容", response_model=bool)
def add_blog(blog: BlogCreate, db: Session = Depends(get_db)):
def add_blog(blog: BlogCreate, db: Session = Depends(get_db), _ = Depends(verify_token)):
return blog_service.add_blog(db, blog)
@router.put("/{blog_id}", summary="更新博客内容", response_model=bool)
def update_blog(blog_id: int, blog: BlogUpdate, db: Session = Depends(get_db)):
def update_blog(blog_id: int, blog: BlogUpdate, db: Session = Depends(get_db), _ = Depends(verify_token)):
return blog_service.update_blog(db, blog_id, blog)
@router.delete("/{blog_id}", summary="删除博客内容", response_model=bool)
def delete_blog(blog_id: int, db: Session = Depends(get_db)):
def delete_blog(blog_id: int, db: Session = Depends(get_db), _ = Depends(verify_token)):
return blog_service.delete_blog(db, blog_id)

18
api/session.py Normal file
View File

@@ -0,0 +1,18 @@
from fastapi import APIRouter, Depends
from fastapi.security import OAuth2PasswordRequestForm
from sqlalchemy.orm import Session
from config.database import get_db
from schemas.session import SessionResponse
from service import session_service
router = APIRouter(
prefix="/session",
tags=["会话"],
responses={404: {"description": "Not found"}}
)
@router.post("", summary="创建会话", response_model=SessionResponse)
def create(form_data: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)):
return session_service.create(db, form_data.username, form_data.password)