feat: add admin authentication

This commit is contained in:
2026-09-18 16:50:35 +08:00
parent b89853bc94
commit bb5ccb1359
9 changed files with 85 additions and 1 deletions

View File

@@ -19,6 +19,8 @@ import { WechatAuthService } from "./wechat-auth.js";
import { BookingService } from "./booking.service.js";
import { CreateBookingDto } from "./booking.dto.js";
import { UpdateBookingStatusDto } from "./admin.dto.js";
import { AdminAuthService } from "./admin-auth.service.js";
import { AdminLoginDto } from "./admin-auth.dto.js";
import type { FastifyRequest } from "fastify";
import { readIdentity, signIdentity } from "./auth.js";
@@ -92,6 +94,15 @@ export class CustomerSessionController {
}
}
@Controller("admin/session")
export class AdminSessionController {
constructor(private readonly auth: AdminAuthService) {}
@Post("login")
login(@Body() body: AdminLoginDto): Promise<{ token: string; displayName: string }> {
return this.auth.login(body.username, body.password);
}
}
@Controller("customer/bookings")
export class CustomerBookingController {
constructor(
@@ -185,10 +196,11 @@ export class AdminBookingController {
HealthController,
PublicController,
CustomerSessionController,
AdminSessionController,
CustomerBookingController,
AdminBookingController,
],
providers: [PrismaService, WechatAuthService, BookingService],
providers: [PrismaService, WechatAuthService, BookingService, AdminAuthService],
exports: [PrismaService, WechatAuthService],
})
export class AppModule {}