ืืืชืจ ืืขืช ืืืื ืืืืืืื!
- ืื ืืืคืื ืืืจืฉืื ืืชืืืจืืช (ืืืื ืืฃ ืืืืช ืืืจืฉืื)
- ืืฃ ืื ืืืื ืืืื ืจืง ืืื ืืืื
- 3 ืฉืืืืช ืืืืื: Middleware, Server-Side, API
- ืื ืืคืฉืจ ืืขืงืืฃ ืืช ืืืื ื
ืคืื ื ืื ืืืื ืืืื ืจืง ืืืฉืชืืฉืื ืขื ืืจืฉืืืช ืื ืื (role: 'admin').
- ืืชืืืจ ืืืขืจืืช ืขื ืืฉืชืืฉ ืื ืื
- ืืืฉืืืจื, ืืืฅ ืขื "ืคืื ื ื ืืืื"
- ืื ืืฉ ืืฉืืจืืช ื:
/admin
ืืื ื: ืืฉืชืืฉ ืจืืื ืฉืื ืกื ืืืฉืช ืืืขืืจ ืืืืืืืืช ืืืฉืืืจื.
- ืฆืคืืื: ืจืฉืืื ืืืื ืฉื ืื ืืืฉืชืืฉืื ืืืขืจืืช
- ืขืจืืื: ืฉืื ืื ืฉื ืืฉืชืืฉ ืืชืคืงืื (ืืฉืชืืฉ/ืื ืื)
- ืืืืงื: ืืกืจืช ืืฉืชืืฉืื ืืืืขืจืืช (ืื ื ืืชื ืืืืืง ืืช ืขืฆืื)
- ืกืืืืกืืืงืืช: ื ืงืืืืช, ืขืืืืื ืฉืืืฉืืื, ืชืืจืื ืืฆืืจืคืืช
- ืฆืคืืื: ืจืฉืืืช ืื ืืกืคืจืื ืืืขืจืืช
- ืืืืงื: ืืกืจืช ืกืคืจืื (ืืืื ืื ืืชืืื ืืช ืืื ืชืื ืื)
- ืกืืืืกืืืงืืช: ืืกืคืจ ืขืืืืื, ืืืื ืืฉืืื
- ืกื"ื ืืฉืชืืฉืื, ืกืคืจืื, ืขืืืืื ืื ืงืืืืช
- ืืืื ืืฉืืืช ืขืืืืื ืืืขืจืืช
- ืืืืฆืข ื ืงืืืืช ืืืฉืชืืฉ
- ืืืืช ืืฉืชืืฉืื ืืืืืืื
ืื ื-API endpoints ืฉื ืื ืืืื ืืืื ืื ืืืืจืฉืื:
- ืืฉืชืืฉ ืืืืืจ (session)
- ืชืคืงืื ืื ืื (role: 'admin')
DELETE /api/admin/users/delete
Body: { userId: string }
PUT /api/admin/users/update
Body: { userId: string, updates: { name?, role? } }
DELETE /api/admin/books/delete
Body: { bookPath: string }
ืืฉืื ืื ืืฉืชืืฉ ืงืืื ืืื ืื, ืขืจืื ืืช ืืงืืืฅ data/users.json:
{
"id": "...",
"email": "admin@example.com",
"name": "Admin User",
"role": "admin", // ืฉื ื ื-"user" ื-"admin"
"createdAt": "..."
}- ืื ืืคืขืืืืช ืืชืืขืืืช ืืงืื ืกืื
- ืื ื ืืชื ืืืืืง ืืช ืขืฆืื ืืื ืื
- ืืืืงืช ืกืคืจ ืืกืืจื ืืช ืื ืืงืืฆืื ืืงืฉืืจืื
- ืืืืงืช ืืฉืชืืฉ ืืื ืคืขืืื ืืืชื ืืคืืื
- ืืืืื: ืืื ืืช ืชืืงืืืช
data/ืืคื ื ืืืืงืืช ืืืืืืช - ืืืืงื: ืืืืง ืืช ืืกืืืืกืืืงืืช ืืคื ื ืืืืงืช ืืฉืชืืฉืื
- ืชืงืฉืืจืช: ืืืืข ืืืฉืชืืฉืื ืืคื ื ืืืืงืช ืืฉืืื ื