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

Nest.js 从零到壹系列(七):讨厌写文档,Swagger UI 了解一下?

本文由图雀社区认证作者 布拉德特皮 写作而成,点击阅读原文查看作者掘金链接,感谢作者优质输出,让我们技术世界变得更加美好前言 上一篇介绍了如何使用寥寥几行代码就实现 RBAC 0,解决了权限管理痛点...上家公司在恒大时候,项目的后端文档使用 Swagger UI 来展示,这是一个遵循 RESTful API 、 可以互动文档,所见即所得。...那么,如何在 Swagger 登录呢?..., Body, UseGuards, UsePipes } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; import...,还能看到 DTO 详情: 再点击 try it out 按钮时候,就会自动使用默认参数了: 总结 本篇介绍了如何使用 Swagger 自动生成可互动文档。

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

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

本文由图雀社区认证作者 布拉德特皮 写作而成 上一篇介绍了如何使用 DTO 和管道对入参进行验证,接下来介绍一下如何用拦截器,实现后台管理系统中最复杂、也最令人头疼 RBAC。...在 RBAC ,权限与角色相关联,用户通过成为适当角色成员而得到这些角色权限。这就极大地简化了权限管理。 2....【角色互斥】:同一用户不能分配到一组互斥角色集合多个角色,互斥角色是指权限互相制约两个角色。案例:财务系统中一个用户不能同时被指派给会计角色和审计员角色。...【运行时互斥】:例如,允许一个用户具有两个角色成员资格,但在运行不可同时激活这两个角色。...请求一下只有管理员才有权限删除操作: ? 涛声依旧。 总结 本篇介绍了 RBAC 概念,以及如何使用拦截器和守卫实现 RBAC 0,原理简单到 15 行代码就搞定了。

3.4K30

Nest.js JWT 验证授权管理

什么是JWT 验证JWT(JSON Web Token)是一种用于在网络应用传输信息开放标准(RFC 7519)。它是一种基于JSON安全令牌,用于在不同系统之间传递声明(claims)。...验证签名:使用事先共享密钥和签名算法对头部和载荷进行签名验证,确保令牌未被篡改。检查有效期:检查载荷声明,例如过期时间(exp)和生效时间(nbf),确保令牌在有效时间范围内。...可选其他验证:根据需要,可能还会验证其他声明,如发行者(iss)、受众(aud)等。一旦JWT通过验证,可以信任其内容,并根据其中声明执行相应操作。...同时,由于JWT本身包含了用户信息,因此在传输过程需要采取适当安全措施,如使用HTTPS来保护通信。.../jwt.key';import { APP_GUARD } from '@nestjs/core';import { AuthGuard } from 'src/guard/auth.guard';@

78121

如何使用 NestJs、PostgreSQL、Redis 构建基于用户设备授权验证

设备认证是验证设备身份和合法性过程,该设备试图访问系统或应用程序。当设备身份得到验证后,设备授权便着重于确定它在应用程序可以执行哪些操作。...@nestjs/jwt :这是一个基于 jsonwebtoken 包NestJWT实用程序模块。 device-detector-js :这将解析或检测任何用户代理和浏览器、操作系统、设备等。...typeorm @nestjs/typeorm :由于我们使用PostgreSQL,我们需要它作为我们对象关系模型。 运行我们服务器 运行下面的命令来启动我们服务器。...注意:我们可以通过将 jwt 令牌传递给请求头来使用cookies或会话。但为了简单起见,我们将在请求和响应体之间使用 jwt 令牌。 这些令牌包含了发起这些请求用户有效载荷。...在上面的代码,以下 lines 36 and 37 帮助我们使用从用户获取负载 email 地址来获取用户最后活跃设备,使用我们 redisCacheService 实例 get() 方法

33020

BFF与Nestjs实战

bff和node没有强绑定关系,但让前端人员去熟悉node之外后端语言学习成本太高,所以技术栈上我们使用node作为中间层,nodehttp框架我们使用nestjs。...一些基础知识 使用Nestjs完成一个基本服务需要有Module,Controller,Provider三大部分。...常用模块 通过阅读上文我们了解了跑通一个服务流程和nestjs接口是如何相应数据,但还有很多细节没有讲,比如大量装饰器(@Get,@Req等)使用,下文将为大家讲解Nestjs常用模块 基础功能...Middleware 中间件 Nestjs是对Express二次封装,Nestjs中间件等价于Express中间件,最常用场景就是全局日志、跨域、错误处理、cookie格式化等较为常见...Nestjs小总结 经过上文一系列步骤,我们已经搭建了一个小应用(没有日志和数据源),那么问题来了,前端发起请求后我们实现应用内部是如何一步步处理并且响应数据

2.6K10

基于Nest快速构建Web应用

Contents 1 写在前面 2 依赖 3 目录结构 4 使用 4.1 开始开发 4.2 主要功能 4.3 接口 5 其他 写在前面 最近忙里偷闲,趁着学习Nest功夫,抽离写了一个Nest模块。...这里简单介绍一下什么是Nestjs Nestjs是一个用于构建高效且可伸缩服务端应用程序渐进式 Node.js 框架。...他主要有以下几个特点 完美支持 Typescript 面向 AOP 编程 支持 Typeorm 高并发,异步非阻塞 IO Node.js 版 spring 构建微服务应用 依赖 @nestjs/core...7.5.1 核心包 @nestjs/config 环境变量治理 @nestjs/swagger 生成接口文档 swagger-ui-express 装@nestjs/swagger 必装包 处理接口文档样式...开始开发 复制根目录下default.env文件,重命名为.env文件,修改其配置 yarn start:dev 开始开发 本地新建数据库,Redis,修改.env相关配置 主要配置项 #

1.6K10

【Nest教程】Nest项目集成JWT接口认证

Json web token (JWT), 是为了在网络应用环境间传递声明而执行一种基于JSON开放标准((RFC 7519).该token被设计为紧凑且安全,特别适用于分布式站点单点登录(SSO...JWT声明一般被用来在身份提供者和服务提供者间传递被认证用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外其它业务逻辑所必须声明信息,该token也可直接被用于认证,也可被加密。...我们都知道,http协议本身是无状态协议,如果在一个系统,我们只有登录后在可以操作,由于http是无状态,所以那就必须每个接口都需要一个认证,来查看当前用户是否有权限。...JwtStrategy], exports: [AuthService], }) export class AuthModule {} 上面这些属于配置,调用我们需要在路由/login里面写逻辑,第2步我们只定义了一个空方法..., Post, Body, Logger, HttpCode, UseGuards, } from '@nestjs/common'; import { AuthGuard } from

2.9K1311

Nest.js 实战系列第二篇-实现注册、扫码登陆、jwt认证等

(data, encrypted) * - data 要比较数据, 使用登录时传递过来密码 * - encrypted 要比较数据, 使用从数据库查询出来加密过密码...其实这两种方式结合使用也完全可以。 用户登录 用户登录这块,前面也提到了打算使用两种方式,一种是本地身份验证(用户名&密码),另一种是使用微信扫码登录。先来看一下本地身份验证登录如何实现。...:在授权标头带有Bearer方案查找JWT我们采用是fromAuthHeaderAsBearerToken,后面请求操作演示可以看到,发送请求头中需要带上,这种方案也是现在很多后端比较青睐:...微信扫码登录 到这里本地验证登录就完成了,通过上面的学习,关于登录这块流程相信大家都已经掌握了, 接下来我再分享一下开发过程我是如何实现微信扫码登录。...其一,本地认证登录token没有设置过期时间,这样风险极大; 其二,微信扫码登录access_token是都时效性如何实现在有效期内多次使用,而不是每次扫码都去获取access_token 这两个问题可以结合

9.7K30

NestJS学习总结篇

默认情况下使用 @nestjs/platform-express 包。 许多用户都可以使用 Express ,并且无需采取任何操作即可启用它。...Get传值或者Post提交数据的话我们可以使用Nestjs装饰器来获取。...导入模块列表,这些模块导出了此模块中所需提供者 exports 由本模块提供并应在其他模块可用提供者子集 // 创建模块 posts nest g module posts Nestjs共享模块...nest g res posts 一键创建以上需要各个模块 配置静态资源 NestJS配置静态资源目录完整代码 npm i @nestjs/platform-express -S import...signed Boolean 表示是否签名cookie,如果设置为true时候表示对这个cookie签名了,这样就需要用res.signedCookies()获取值cookie不是使用res.cookies

2.2K42

如何使用我们telnet操作memcached

Memcached 是一个高性能分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存缓存数据和对象来减少读取数据库次数,从而提高动态、数据库驱动网站速度。...现在网上教程也很多,给大家一个参考案例(如遇到有什么问题,请在下方留言) windows安装 linux安装 我们对memcached进行操作方式主要有三种。 1....使用telnet操作 2.使用php_memcached.dll扩展库 3.直接使用php操作 先给大家介绍第一种,也是最简单一种(操作环境windows)。...第一步,我们打开我们telnet,链接到memcached。我们先开启我们memcached服务。前面的windows安装已经介绍了怎么操作。 ?...安装好后,在执行上面的操作即可,建议使用管理员身份操作dos命令。

72730

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

本文由图雀社区认证作者 布拉德特皮 写作而成 前言 上一篇介绍了如何使用 JWT 进行单点登录,接下来,要完善一下后端项目的一些基础功能。...可以看到,出参日志已经出来了,User 为 undefiend 是因为登录接口没有使用 JWT 守卫,若路由加了 @UseGuards(AuthGuard('jwt')),则会把用户信息绑定在 req...已经有了明显区别,再看看 errors.log,也写进了日志: ? 如此一来,代码未捕获错误也能从日志查到了。...总结 本篇介绍了如何使用 log4js 来管理日志,制作中间件和拦截器对入参出参进行记录,以及使用过滤器对异常进行处理。 文中日志打印格式可以按照自己喜好进行排版,不一定局限于此。...良好日志管理能帮我们快速排查 Bug,减少加班,不做资本家奴隶,把有限精力投入到无限可能上。 ? 下一篇将介绍如何使用 DTO 对参数进行验证,解脱各种 if - else。

6.4K73

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

前言 上一篇介绍了如何使用 JWT 进行单点登录,接下来,要完善一下后端项目的一些基础功能。...可以看到,出参日志已经出来了,User 为 undefiend 是因为登录接口没有使用 JWT 守卫,若路由加了 @UseGuards(AuthGuard('jwt')),则会把用户信息绑定在 req...已经有了明显区别,再看看 errors.log,也写进了日志: ? 如此一来,代码未捕获错误也能从日志查到了。...总结 本篇介绍了如何使用 log4js 来管理日志,制作中间件和拦截器对入参出参进行记录,以及使用过滤器对异常进行处理。 文中日志打印格式可以按照自己喜好进行排版,不一定局限于此。...良好日志管理能帮我们快速排查 Bug,减少加班,不做资本家奴隶,把有限精力投入到无限可能上。 ? 下一篇将介绍如何使用 DTO 对参数进行验证,解脱各种 if - else。

5.4K20

学习PHPYAML操作扩展使用

学习PHPYAML操作扩展使用 YAML 这个东西,说实话,自己用得并不多。...在学习自动化测试相关内容时候,接触过使用这种配置文件来配置 Travis CI 持续集成操作,当然,当时也是以学习性质为主。...此外,在测试代码我们加入了中文内容。可以看到直接转换时候中文被编码了。就像 JSON 操作一样,在 YAML 这个扩展函数,我们也可以指定编码格式让中文原样显示。...laravel 这种写法可以看做是 YAML 一种标签格式写法。而这个回调作用就是在遇到类似的这类标签时候,使用什么回调函数来进行处理。比如我们原文档 !...如果是自己使用的话,在 packagist.org 能找到很多组件,而如果是使用 Laravel 的话,它底层使用其实是 symfony 框架 yaml 处理组件。

2.2K10

使用脚本操作UpdatePanel控件问题

假设有一个脚本(用js或者jQuery等类似手段编写),为UpdatePanel一个普通TextBox赋值。...但是等到点击button之后,仅仅是UpdatePanel内部内容刷新了,整个页面根本不刷新(换句话说,整个页面的jQuery根本没有执行)。因此没有任何作用了。   ...,必须通过getInstance方法获取单例之后使用,而Sys.Application可以直接使用。...事件和客户端ApplicationLoad事件一样重要:前者是加载了全部服务端控件之后可以开始在此写代码进行对服务端控件进行服务端操作。...后者则从客户端角度(加载了所有Html以及服务端自动生成脚本等),可以进行额外控制了。一般我们开发人员主要考虑在这两个事件处理事情居多。

1.6K100
领券