nestjs守卫

2023-02-05  本文已影响0人  简爱_cdde

守卫是一个使用@injectable装饰器的类,守卫应该实现canactivate接口

创建守卫

接收单个参数,executionContext 实例,exectuion继承子argumentsHost,argumenthost是传递给原始处理程序的参数的包装器,

守卫有一个单独的作用,他们根据运行时出现的某些条件,如:权限、角色、访问控制列表来确定给的请求是否由路由处理程序处理。这通常称为授权。

绑定守卫:

通过@UseGuards装饰器绑定

绑定守卫

守卫使用的范围

控制器守卫:

可控制器守卫

方法守卫

方法守卫

全局守卫

全局守卫

根模块的依赖注入的方式,将守卫作为根模块的提供者注入到整个程序

指明守卫的依赖注入关系使其称为真正的全局守卫

守卫实战:

1、通过setMetadata设置当前这个路由的元数据,也就是在服务器端设置好当前路由的可访问权限。

2、通过canActivate方法的 context参数获取当前路由的上下文,也就是请求和响应

通过获取当前路由的元数据和请求的参数进行对比。判断当前请求是否可以访问当前路由

通过返回值的true和false来进行判断

上一篇下一篇

猜你喜欢

热点阅读