Selaa lähdekoodia

✨ feat(user-module): 集成认证中间件并完善路由权限控制

- 添加 @d8d/auth-module 依赖以支持认证功能
- 为用户管理路由添加 authMiddleware 认证中间件
- 为角色管理路由添加 authMiddleware 认证中间件
- 更新 OpenAPIHono 类型为 AuthContext 以支持认证上下文
- 移除代码中关于等待 auth-module 创建的注释
yourname 4 viikkoa sitten
vanhempi
sitoutus
ca85e1ef20

+ 1 - 0
packages/user-module/package.json

@@ -42,6 +42,7 @@
     "@d8d/shared-types": "workspace:*",
     "@d8d/shared-utils": "workspace:*",
     "@d8d/shared-test-util": "workspace:*",
+    "@d8d/auth-module": "workspace:*",
     "@hono/zod-openapi": "1.0.2",
     "bcrypt": "^6.0.0",
     "hono": "^4.8.5",

+ 6 - 7
packages/user-module/src/routes/custom.routes.ts

@@ -4,13 +4,14 @@ import { UserService } from '../services/user.service';
 import { AppDataSource, ErrorSchema } from '@d8d/shared-utils';
 import { CreateUserDto, UpdateUserDto, UserSchema } from '../schemas/user.schema';
 import { parseWithAwait } from '@d8d/shared-utils';
+import { authMiddleware } from '@d8d/auth-module';
+import { AuthContext } from '@d8d/shared-types';
 
 // 创建用户路由 - 自定义业务逻辑(密码加密等)
 const createUserRoute = createRoute({
   method: 'post',
   path: '/',
-  // 暂时移除认证中间件,等待 auth-module 创建
-  // middleware: [authMiddleware],
+  middleware: [authMiddleware],
   request: {
     body: {
       content: {
@@ -40,8 +41,7 @@ const createUserRoute = createRoute({
 const updateUserRoute = createRoute({
   method: 'put',
   path: '/{id}',
-  // 暂时移除认证中间件,等待 auth-module 创建
-  // middleware: [authMiddleware],
+  middleware: [authMiddleware],
   request: {
     params: z.object({
       id: z.coerce.number().openapi({
@@ -82,8 +82,7 @@ const updateUserRoute = createRoute({
 const deleteUserRoute = createRoute({
   method: 'delete',
   path: '/{id}',
-  // 暂时移除认证中间件,等待 auth-module 创建
-  // middleware: [authMiddleware],
+  middleware: [authMiddleware],
   request: {
     params: z.object({
       id: z.coerce.number().openapi({
@@ -106,7 +105,7 @@ const deleteUserRoute = createRoute({
   }
 });
 
-const app = new OpenAPIHono()
+const app = new OpenAPIHono<AuthContext>()
   .openapi(createUserRoute, async (c) => {
     try {
       const data = c.req.valid('json');

+ 5 - 5
packages/user-module/src/routes/role.routes.ts

@@ -2,6 +2,7 @@ import { createCrudRoutes } from '@d8d/shared-crud';
 import { Role } from '../entities/role.entity';
 import { RoleSchema, CreateRoleDto, UpdateRoleDto } from '../schemas/role.schema';
 import { OpenAPIHono } from '@hono/zod-openapi';
+import { authMiddleware } from '@d8d/auth-module';
 
 // 创建角色CRUD路由
 const roleRoutes = createCrudRoutes({
@@ -11,11 +12,10 @@ const roleRoutes = createCrudRoutes({
   getSchema: RoleSchema,
   listSchema: RoleSchema,
   searchFields: ['name', 'description'],
-  // 暂时移除认证中间件,等待 auth-module 创建
-  // middleware: [
-  //   authMiddleware,
-  //   // permissionMiddleware(checkPermission(['role:manage']))
-  // ]
+  middleware: [
+    authMiddleware,
+    // permissionMiddleware(checkPermission(['role:manage']))
+  ]
 })
 
 const app = new OpenAPIHono()

+ 3 - 0
pnpm-lock.yaml

@@ -470,6 +470,9 @@ importers:
 
   packages/user-module:
     dependencies:
+      '@d8d/auth-module':
+        specifier: workspace:*
+        version: link:../auth-module
       '@d8d/shared-crud':
         specifier: workspace:*
         version: link:../shared-crud