chore: check off Task 4 (Auth module integration)
This commit is contained in:
@@ -759,7 +759,7 @@ git commit -m "feat(rbac): add PermissionGuard, @Public and @RequirePermission d
|
|||||||
- Consumes: `RbacService.getUserPermissions(userId)` (from Task 2)
|
- Consumes: `RbacService.getUserPermissions(userId)` (from Task 2)
|
||||||
- Produces: login 返回 `{ access_token, user: { id, username, name, roles, permissions } }`, JWT payload 包含 `{ sub, username, permissions }`
|
- Produces: login 返回 `{ access_token, user: { id, username, name, roles, permissions } }`, JWT payload 包含 `{ sub, username, permissions }`
|
||||||
|
|
||||||
- [ ] **Step 1: 修改 AuthModule 导入 RbacModule**
|
- [x] **Step 1: 修改 AuthModule 导入 RbacModule**
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
// backend/src/auth/auth.module.ts
|
// backend/src/auth/auth.module.ts
|
||||||
@@ -797,7 +797,7 @@ export class AuthModule {}
|
|||||||
|
|
||||||
注意:移除 `OnModuleInit` 实现,`initAdmin` 已迁移至 `RbacModule`。
|
注意:移除 `OnModuleInit` 实现,`initAdmin` 已迁移至 `RbacModule`。
|
||||||
|
|
||||||
- [ ] **Step 2: 修改 AuthService.login() 集成权限查询**
|
- [x] **Step 2: 修改 AuthService.login() 集成权限查询**
|
||||||
|
|
||||||
在 `backend/src/auth/auth.service.ts` 中:
|
在 `backend/src/auth/auth.service.ts` 中:
|
||||||
|
|
||||||
@@ -891,7 +891,7 @@ export class AuthService {
|
|||||||
|
|
||||||
保留 `validateUser()`(供 JwtStrategy 使用)和 `recordFailedAttempt()`(私有)。
|
保留 `validateUser()`(供 JwtStrategy 使用)和 `recordFailedAttempt()`(私有)。
|
||||||
|
|
||||||
- [ ] **Step 3: 修改 AuthController**
|
- [x] **Step 3: 修改 AuthController**
|
||||||
|
|
||||||
在 `backend/src/auth/auth.controller.ts` 中:
|
在 `backend/src/auth/auth.controller.ts` 中:
|
||||||
|
|
||||||
@@ -948,7 +948,7 @@ export class AuthController {
|
|||||||
- `PUT /auth/users/:id/password` → 迁移至 `/rbac/users/:id/password PUT`
|
- `PUT /auth/users/:id/password` → 迁移至 `/rbac/users/:id/password PUT`
|
||||||
- `DELETE /auth/users/:id` → 迁移至 `/rbac/users/:id DELETE`
|
- `DELETE /auth/users/:id` → 迁移至 `/rbac/users/:id DELETE`
|
||||||
|
|
||||||
- [ ] **Step 4: 修改 JwtStrategy**
|
- [x] **Step 4: 修改 JwtStrategy**
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
// backend/src/auth/strategies/jwt.strategy.ts
|
// backend/src/auth/strategies/jwt.strategy.ts
|
||||||
@@ -977,7 +977,7 @@ export class JwtStrategy extends PassportStrategy(Strategy) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
- [ ] **Step 5: 编译验证**
|
- [x] **Step 5: 编译验证**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd backend && npx tsc --noEmit
|
cd backend && npx tsc --noEmit
|
||||||
@@ -985,7 +985,7 @@ cd backend && npx tsc --noEmit
|
|||||||
|
|
||||||
预期:无类型错误。如有循环依赖错误,确认 `forwardRef` 已正确配置。
|
预期:无类型错误。如有循环依赖错误,确认 `forwardRef` 已正确配置。
|
||||||
|
|
||||||
- [ ] **Step 6: Commit**
|
- [x] **Step 6: Commit**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git add backend/src/auth/
|
git add backend/src/auth/
|
||||||
|
|||||||
@@ -19,8 +19,8 @@
|
|||||||
|
|
||||||
- [x] 3.1 创建 @RequirePermission 装饰器(支持 AND/OR 语义,通过 SetMetadata 存储权限列表和逻辑模式)
|
- [x] 3.1 创建 @RequirePermission 装饰器(支持 AND/OR 语义,通过 SetMetadata 存储权限列表和逻辑模式)
|
||||||
- [x] 3.2 创建 PermissionGuard:从 JWT payload 中读取 permissions 数组,与装饰器标注的权限做匹配
|
- [x] 3.2 创建 PermissionGuard:从 JWT payload 中读取 permissions 数组,与装饰器标注的权限做匹配
|
||||||
- [ ] 3.3 修改 JwtStrategy 和 AuthService.login:登录时调用 getUserPermissions,将 permissions 写入 JWT payload
|
- [x] 3.3 修改 JwtStrategy 和 AuthService.login:登录时调用 getUserPermissions,将 permissions 写入 JWT payload
|
||||||
- [ ] 3.4 修改 AuthService.validateUser/profile:返回用户信息时携带角色和权限列表
|
- [x] 3.4 修改 AuthService.validateUser/profile:返回用户信息时携带角色和权限列表
|
||||||
- [ ] 3.5 全局注册 PermissionGuard(或在各模块按需注册)
|
- [ ] 3.5 全局注册 PermissionGuard(或在各模块按需注册)
|
||||||
|
|
||||||
## 4. 现有接口批量加守卫
|
## 4. 现有接口批量加守卫
|
||||||
|
|||||||
Reference in New Issue
Block a user