首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nest.js 从零到壹系列(六):用 15 行代码实现 RBAC 0

本文由图雀社区认证作者 布拉德特皮 写作而成 上一篇介绍了如何使用 DTO 和管道对入参进行验证,接下来介绍一下如何用拦截器,实现后台管理系统中最复杂、也最令人头疼的 RBAC。...拦截器逻辑编写 还记得第三篇签发 Token 的时候,有个 role 字段么?那个就是用户角色,下面我们针对 Token 的 role 字段进行展开。...'rxjs'; @Injectable() export class RbacInterceptor implements NestInterceptor { // role[用户角色]: 0-超级管理员...const jwtConstants = { secret: 'shinobi7414', }; export const roleConstans = { SUPER_ADMIN: 0, // 超级管理员...总结 本篇介绍了 RBAC 的概念,以及如何使用拦截器和守卫实现 RBAC 0,原理简单到 15 行代码就搞定了。

3.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

【Nest教程】Nest项目配置http和https

Nest项目设置http和https服务 一般,我们的项目如果不是有特别需要,是不会去考虑https的,但是在某些情况下,如,你打算把你的程序发布在微信上,就必须配置https,今天我们就结合前面的教程.../filters/http-exception.filter'; // 自定义拦截器 import { TransformInterceptor } from '....'), key: fs.readFileSync('/opt/nestjs-api/src/ssl/nmwap.com.key'), cert: fs.readFileSync('/opt/nestjs-api...此方法带有两个参数,分别是应用程序实例和基本Swagger选项。...3 运行项目 如果不会部署,那简单,你的项目文件直接放到服务器上,然后build,用node运行下main.js,此种方式关闭窗口程序就会停止运行,所以只适合测试用。 然后访问接口地址。 ?

3.4K1411

Node.js服务端开发教程 (一):NestJS框架0到1

然后呢,我们可以尝试把这个新项目运行起来,看看效果如何: cd myserver npm run start #或者 yarn run start 这样就能将这个NestJS生成的服务端程序运行起来了...项目源代码 使用代码编辑器打开这个新项目,我们可以看到主要有4个目录: node_modules - Node.js项目的依赖模块目录 src - 存放业务代码以及单元测试代码的目录 test - 存放端到端...(e2e)测试代码的目录 dist - TypeScript代码最终都会被编译成JS代码执行,这个就是存放最终编译后的代码的目录 其中src应该是我们最关心的目录,我们大部分的功能实现代码都将会从这里开始...app.module.ts、app.controller.ts、app.service.ts 组成了一个业务模块 app.controller.spec.ts 是 app.controller.ts 的单元测试...业务模块代码看完了,最后我们来看一下程序的入口代码 main.ts: import { NestFactory } from '@nestjs/core'; import { AppModule } from

2.5K30

Nest.js 实战系列四:使用中间件、拦截器、过滤器打造日志系统

二、异常处理 在开发的过程中,难免会写出各式各样的“八阿哥”,不然程序员就要失业了。一个富有爱心的程序员应该在输出代码的同时创造出3个岗位(手动狗头)。 ?...初探过滤器 Nest 不光提供了拦截器,也提供了过滤器,就代码结构而言,和拦截器很相似。 内置的异常层负责处理整个应用程序中的所有抛出的异常。当捕获到未处理的异常时,最终用户将收到友好的响应。...对于典型的基于 HTTP REST/GraphQL API 的应用程序,最佳实践是在发生某些错误情况时发送标准 HTTP 响应对象。...我们测试一下,先把注册接口的 Token 去掉,请求: ? 上图是还没有加过滤器的请求结果。...然后,我们带上 Token (为了跳过 401 报错)再请求一次: ? 再看看控制台: ? 已经有了明显的区别,再看看 errors.log,也写进了日志中: ?

5.4K20

Nest.js 从零到壹系列(四):使用中间件、拦截器、过滤器打造日志系统

二、异常处理 在开发的过程中,难免会写出各式各样的“八阿哥”,不然程序员就要失业了。一个富有爱心的程序员应该在输出代码的同时创造出3个岗位(手动狗头)。 ?...初探过滤器 Nest 不光提供了拦截器,也提供了过滤器,就代码结构而言,和拦截器很相似。 内置的异常层负责处理整个应用程序中的所有抛出的异常。当捕获到未处理的异常时,最终用户将收到友好的响应。...对于典型的基于 HTTP REST/GraphQL API 的应用程序,最佳实践是在发生某些错误情况时发送标准 HTTP 响应对象。...我们测试一下,先把注册接口的 Token 去掉,请求: ? 上图是还没有加过滤器的请求结果。...然后,我们带上 Token (为了跳过 401 报错)再请求一次: ? 再看看控制台: ? 已经有了明显的区别,再看看 errors.log,也写进了日志中: ?

6.4K73

快速打开 Nestjs 的世界

从引用官方介绍开始: Nest(NestJS)是一个用于构建高效、可扩展的Node.js服务器端应用程序的框架。...学习异常过滤器的使用 图片来自:docs.nestjs.com/exception-f… 异常层由开箱即用的全局异常过滤器还行,负责处理应用程序中所有未处理的异常。...; } return this.catsService.findCatById(Number(id)); } 在触发异常后客户端将收到一份 JSON 格式的数据,cause 作为可选项虽然不会序列化后发送到客户端..., }, ], }) export class AppModule {} 学习守卫的使用 图片来自:docs.nestjs.com/guards 在服务运行时根据特定的条件来允许或阻止请求是否要被路由程序处理的任务是由守卫承担...图片来自:docs.nestjs.com/interceptor… 拦截器是一个 APO 切面编程技术,应用拦截器可以获得下面所列出的一系列能力: 在方法执行之前/之后绑定额外的逻辑 转换函数返回的结果

37610

NestJS 7.x 折腾记: (1) 项目初始化及常规提交门禁加入

前言 系列常规操作,没兴趣的可以跳过这篇水文. 写过Angular 2+的小伙伴会有一种天然的熟悉感....因为Nest基本就是同一个思想模式搞得~~ 实操 安装 npm i -g @nestjs/cli CLI Help 还是熟悉的模样,极具通用性的CLI, 可以快速创建各种模块和中间件~ linqunhe...─ nest-cli.json # 脚手架Nest的项目级别配置 ├── package.json # 不言而喻 ├── src │ ├── app.controller.spec.ts # 单元测试文件...# 生产模式ts配置文件,继承tsconfig.json,做了一些其他覆写配置而已 ├── tsconfig.json # ts配置文件 └── yarn.lock # 不言而喻 nest默认的单元测试使用的是...inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e

95220

编写接口请求库单元测试E2E 测试的思考

所以单测和 E2E 也是非常重要。 架构设计 先说说我这个接口库是怎么封装了,然后再说怎么去测试。...类似的 NestJS 等框架也是用了适配器模式,所以 NestJS 可以灵活选择 Express、Koa、Fastify 等。...具体参考: @mx-space/api-client:__test__/helper E2E test E2E 是点对点测试,是需要去真实访问接口的,这也是最接近用户实际开发体验的测试,也就是说不 mock...E2E 就是去测试 adaptor 了,因为上面单测除了 adaptor 没测。 我已 Express 、 Jest 为例。我的想法是直接用 Express 托管一系列接口。...因为固定端口在 Jest 并行测试中容易被占用。 测试用例也比较好写,只要按照传统前后端接口请求去写就可以了。

1K40

FastAPI框架诞生的缘由(下)

NestJS (and Angular) 这很跟 Python 没有关系,NestJS是一个JavaScript(TypeScript)NodeJS 框架,受Angular 启发。...这是最早使用Python类型提示声明参数和请求的框架之一(在NestJS和Molten之前)。我在发现 Hub 框架的同时也发现了它。但是 APIStar 使用了OpenAPI 标准。...测试基于 requests 的客户端。 CORS,GZip,静态文件,流式响应。 会话和 Cookie 支持。 100% 的测试覆盖率。 100% 类型注释的代码库。 零硬依赖性。...以及依赖注入系统,安全实用程序,OpenAPI 模式生成等。 技术细节:ASGI 是 Django 核心团队成员开发的新“标准”。尽管他们正在这样做,但它仍然不是“ Python标准”(PEP)。...FastAPI推荐它为主 Web服务器运行 FastAPI 应用程序。您可以将其与 Gunicorn 结合使用,以拥有异步多进程服务器。在“ 部署” 部分中查看更多详细信息。 (完)

2.3K20

前端测试一共有哪几种?

最近有不少朋友找到我聊了聊测试相关的内容,发现他们对测试的分类有些迷茫。实际上测试一共就 3 种:E2E,集成,单测,其它的功能测试、UI 测试、界面测试只是它们中里面的一种。Kent C....// 剩下的测试则会通过直接发 HTTP 请求来实现注册功能 // 这样我们就可以跳过这个注册表单的交互过程了 cy.visitApp() cy.findByText...当然我不能这么做,这是因为还有一个超级重要的因素,可能你经常会听我说到它: 当你的测试和你应用的使用方式越相似,它们能给你的信心就越大。 这是什么意思呢?...所以,如果你在做低层级的测试,会需要更多测试用例来覆盖应用程序中相同数量的代码。实际上,当你越往模型下面走,会有很多东西是没办法测试的。...如果你说我的单测就是集成测试,或者甚至说是 E2E 测试(可能有人真的这么觉得 ‍♂️),那就说吧。

53620
领券