feat: 装饰器测试
This commit is contained in:
@@ -80,7 +80,7 @@ model SysPermission {
|
|||||||
id String @id @default(cuid()) /// 主键id
|
id String @id @default(cuid()) /// 主键id
|
||||||
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
|
createdAt DateTime @default(now()) @map("created_at") /// 创建时间
|
||||||
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
|
updatedAt DateTime @updatedAt @map("updated_at") /// 修改时间
|
||||||
type Int
|
type Int /// 权限类型
|
||||||
sysRolePermission SysRolePermission[]
|
sysRolePermission SysRolePermission[]
|
||||||
sysMenuPermission SysMenuPermission[]
|
sysMenuPermission SysMenuPermission[]
|
||||||
|
|
||||||
|
|||||||
@@ -43,11 +43,12 @@ export class AuthGuard implements CanActivate {
|
|||||||
secret: this.configService.get('jwt.secret'),
|
secret: this.configService.get('jwt.secret'),
|
||||||
});
|
});
|
||||||
|
|
||||||
const isTokenPresent = await this.cacheService.get(
|
// 查看redis中是否缓存有jti 若不存在 表示登录已失效
|
||||||
|
const isJtiCached = await this.cacheService.get(
|
||||||
`${RedisGroup.JwtJti}:${user.sub}:${user.jti}`,
|
`${RedisGroup.JwtJti}:${user.sub}:${user.jti}`,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!isTokenPresent) {
|
if (!isJtiCached) {
|
||||||
throw new UnauthorizedException('登录已失效,请重新登录!');
|
throw new UnauthorizedException('登录已失效,请重新登录!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { FileModule } from '@/modules/system/file/file.module';
|
|||||||
import { MenuModule } from './menu/menu.module';
|
import { MenuModule } from './menu/menu.module';
|
||||||
import { ConfigModule } from './config/config.module';
|
import { ConfigModule } from './config/config.module';
|
||||||
import { PermissionModule } from './permission/permission.module';
|
import { PermissionModule } from './permission/permission.module';
|
||||||
|
import { TestModule } from './test/test.module';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -43,6 +44,10 @@ import { PermissionModule } from './permission/permission.module';
|
|||||||
path: 'permission',
|
path: 'permission',
|
||||||
module: PermissionModule,
|
module: PermissionModule,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'test',
|
||||||
|
module: TestModule,
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
]),
|
]),
|
||||||
@@ -53,6 +58,7 @@ import { PermissionModule } from './permission/permission.module';
|
|||||||
MenuModule,
|
MenuModule,
|
||||||
ConfigModule,
|
ConfigModule,
|
||||||
PermissionModule,
|
PermissionModule,
|
||||||
|
TestModule,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class SystemModule {}
|
export class SystemModule {}
|
||||||
|
|||||||
1
server/src/modules/system/test/dto/create-test.dto.ts
Normal file
1
server/src/modules/system/test/dto/create-test.dto.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export class CreateTestDto {}
|
||||||
4
server/src/modules/system/test/dto/update-test.dto.ts
Normal file
4
server/src/modules/system/test/dto/update-test.dto.ts
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
import { PartialType } from '@nestjs/mapped-types';
|
||||||
|
import { CreateTestDto } from './create-test.dto';
|
||||||
|
|
||||||
|
export class UpdateTestDto extends PartialType(CreateTestDto) {}
|
||||||
15
server/src/modules/system/test/test.controller.ts
Normal file
15
server/src/modules/system/test/test.controller.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
import { Controller, Get } from '@nestjs/common';
|
||||||
|
import { TestService } from './test.service';
|
||||||
|
|
||||||
|
import { SkipAuth } from '@/common/decorators/skip-auth.decorator';
|
||||||
|
|
||||||
|
@Controller()
|
||||||
|
@SkipAuth()
|
||||||
|
export class TestController {
|
||||||
|
constructor(private readonly testService: TestService) {}
|
||||||
|
|
||||||
|
@Get()
|
||||||
|
findAll() {
|
||||||
|
return this.testService.findAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
9
server/src/modules/system/test/test.module.ts
Normal file
9
server/src/modules/system/test/test.module.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import { Module } from '@nestjs/common';
|
||||||
|
import { TestService } from './test.service';
|
||||||
|
import { TestController } from './test.controller';
|
||||||
|
|
||||||
|
@Module({
|
||||||
|
controllers: [TestController],
|
||||||
|
providers: [TestService],
|
||||||
|
})
|
||||||
|
export class TestModule {}
|
||||||
8
server/src/modules/system/test/test.service.ts
Normal file
8
server/src/modules/system/test/test.service.ts
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import { Injectable } from '@nestjs/common';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class TestService {
|
||||||
|
findAll() {
|
||||||
|
return `This action returns all test`;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -59,12 +59,7 @@ export class UserService {
|
|||||||
gender: true,
|
gender: true,
|
||||||
createdAt: true,
|
createdAt: true,
|
||||||
updatedAt: true,
|
updatedAt: true,
|
||||||
avatar: {
|
avatar: true,
|
||||||
select: {
|
|
||||||
id: true,
|
|
||||||
path: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
userRole: {
|
userRole: {
|
||||||
select: { roleId: true },
|
select: { roleId: true },
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user