首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

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

    4K30

    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 自动生成可互动的文档。

    5.3K10

    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';@

    2.3K21

    BFF与Nestjs实战

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

    3.5K10

    【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

    3.3K1311

    基于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中相关配置 主要配置项 #

    2.1K10

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

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

    11.3K30

    深度解析如何使用Linux中的git操作

    它在软件开发和文档管理中尤为重要,但也适用于其他需要追踪更改的领域。...强大的数据完整性:确保版本控制中的每一项变更都可以被验证。 名称的由来 “Git” 是林纳斯对自己“幽默的”描述——在英国俚语中,“git” 是一个贬义词,意为“愚蠢的人”。...从解决一个具体的技术问题,到如今统治全球软件开发领域,Git的历史展示了如何通过开放和创新改变世界。...3.Git的操作 我们使用yum install git进行git工具间的安装操作 然后可以使用命令git version进行当前git版本的查看操作 我们第一次使用的时候系统会让我们输入username...因为我们的这个代码文件冲突了,我们Windows里面已经对这个文件进行修改了 我们在Linux里面再次进行修改的话是不可行的 那么我们如何进行解决操作呢?

    74410

    如何使用我们的telnet操作memcached

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

    1.1K30

    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

    3K42

    学习PHP中YAML操作扩展的使用

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

    2.8K10
    领券