zoukankan      html  css  js  c++  java
  • Nest.js

    • Restful API接口
      • @ApiBearerAuth()
        • 用在controller类上
      • @Controller()
        • 用在controller类上
      • @Get(‘/xx/:id/yyy’)
        • 用在方法上
      • @ApiQuery({ name: ‘size’, required: true})
        • 用在方法上
      • @Query(‘size’) size: number = 10
        • 用在方法的参数列表中
    • 授权(scope/role)检查
      • 使用guards
        • guards 守卫,守卫在中间件之后,管道之前执行,守卫返回true或者false,从而决定请求是否给下文执行
        • 使用
          • 自定义的guard类

            • 在controller类上,使用@UseGuards装饰器指定自定义的guard类:@UseGuards(XxxGuard),如@UseGuards(PermissionGuard)
            • 定义(如PermissionGuard
            @Injectable()
            export class PermissionGuard implements CanActive {
                constructor(private reflector: Reflector)
            
                canActivate(context: ExecutionContext): Boolean {
                    // 提取装饰器参数备用
                    const requiredPermissions = this.reflector.getAllAndMerge<string[]>('permissions', [
                     context.getHandler(),
                     context.getClass(),
                    ]);
            
                    // 提取请求参数备用
                    const { request } = context.switchToHttp().getRequest();
            
                    // 权限检查逻辑
                    const result = requiredPermissions.some((permission) => reuqest?.claim?.includes(permission))
                    return result;
                }
            }
            
          • 自定义的权限检查装饰器

            • 如@CheckPolicies(params)或@RequirePermissions(params),参数可以是一个需要拥有的权限数组,或者一个对象
            • export const RequirePermissions = (…permissions: string[]) => SetMetadata(“permissions”, permissions))
            • 在controller类或controller方法上使用它进行装饰
    • swagger
    • 依赖注入
      • 可以在main.ts中像.net core一样定义第三方依赖,如app.useGlobalGuards(new JwtAuthGuard());
  • 相关阅读:
    Java 中的传值与传引用
    UML中的类图及类图之间的关系
    [转]多线程下单例模式惰性加载
    中缀表达式转后缀表达式,Java实现
    自用Intellij IDEA设置
    [转]JavaScript将MyBatis打印的日志转化为可执行sql
    SpringBoot利用poi导出excel下载
    详解 HiveUDF 函数
    最全的 Java 知识总结- Github 日增 10 star
    最好用的 Kafka Json Logger Java客户端,赶紧尝试一下
  • 原文地址:https://www.cnblogs.com/wyp1988/p/14863900.html
Copyright © 2011-2022 走看看