Ver código fonte

♻️ refactor(auth): 优化用户认证上下文类型处理

- 引入parseWithAwait工具和UserSchema对用户数据进行验证和转换
- 更新AuthContext中的user类型从UserEntity改为User接口
- 确保认证中间件中设置的用户数据符合预定义的UserSchema结构
yourname 4 meses atrás
pai
commit
591b8a2cf7

+ 3 - 1
src/server/middleware/auth.middleware.ts

@@ -3,6 +3,8 @@ import { AuthService } from '../modules/auth/auth.service';
 import { UserService } from '../modules/users/user.service';
 import { AppDataSource } from '../data-source';
 import { AuthContext } from '../types/context';
+import { parseWithAwait } from '../utils/parseWithAwait';
+import { UserSchema } from '../modules/users/user.schema';
 
 export async function authMiddleware(c: Context<AuthContext>, next: Next) {
   try {
@@ -26,7 +28,7 @@ export async function authMiddleware(c: Context<AuthContext>, next: Next) {
       return c.json({ message: 'User not found' }, 401);
     }
 
-    c.set('user', user);
+    c.set('user', await parseWithAwait(UserSchema, user));
     c.set('token', token);
     await next();
   } catch (error) {

+ 2 - 2
src/server/types/context.ts

@@ -1,8 +1,8 @@
-import { UserEntity } from "../modules/users/user.entity";
+import { User } from "../modules/users/user.schema";
 
 // 扩展Context类型
 export type Variables = {
-  user: UserEntity;
+  user: User;
   token: string;
 }