feat: add admin authentication
This commit is contained in:
@@ -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 {}
|
||||
|
||||
Reference in New Issue
Block a user