Implement JWT authentication and app passkey support

- Add JWT token generation and validation
- Implement bcrypt password hashing
- Create auth service with register/login/refresh/logout
- Add app passkey generation and management
- Implement protected routes and auth middleware
- Add comprehensive tests for new functionality
This commit is contained in:
2026-04-29 11:50:09 +08:00
parent 901a769ee7
commit 3eeb9f6d26
24 changed files with 2063 additions and 36 deletions

View File

@@ -4,9 +4,9 @@
| Feature | Status | Notes |
|---------|--------|-------|
| CLI config management | 🛠 WIP | |
| JWT authentication | 🛠 WIP | access + refresh tokens, refresh token in DB |
| Web API foundation | 🛠 WIP | WebApp composition, Gin router, graceful shutdown, `GET /api/v1/version` |
| CLI config management | | |
| JWT authentication | | access + refresh tokens, refresh token in DB, app passkey support |
| Web API foundation | | WebApp composition, Gin router, graceful shutdown, `GET /api/v1/version` |
| File upload/download/manage APIs | 🛠 WIP | REST API via Gin |
| Admin endpoints | 🛠 WIP | user CRUD for superusers |
| WebDAV | 🛠 WIP | future v0 or v1 |
@@ -19,14 +19,14 @@ Package-level implementation order (each task includes unit tests):
2. `internal/app` — runtime dependency container ✅
3. `internal/model` — domain types, error codes ✅
4. `internal/api` — error response helpers ✅
5. `internal/auth` — JWT utils
5. `internal/auth` — JWT utils
6. `internal/storage` — backend interface + local fs
7. `internal/repository` — interfaces + GORM/SQLite impl ✅
8. `internal/service` — auth, file, admin services
9. `internal/middleware` — logger, cors, auth
10. `internal/handler` — auth, file, admin handlers 🛠 WIP
11. `internal/server` — Gin router, route registration, graceful shutdown 🛠 WIP
12. `cmd/serve.go`, `cmd/config.go`, `cmd/status.go` 🛠 WIP
8. `internal/service` — auth, file, admin services ✅ (auth done)
9. `internal/middleware` — logger, cors, auth ✅ (auth done)
10. `internal/handler` — auth, file, admin handlers ✅ (auth done)
11. `internal/server` — Gin router, route registration, graceful shutdown
12. `cmd/serve.go`, `cmd/config.go`, `cmd/status.go` ✅ (serve done)
13. Integration tests
## Future