守卫可以绑定在控制器,控制器的方法,或者全局范围。
先打开 posts.controller,比如我要把之前创建的守卫用在整个控制器上,在定义控制器类的上面用一下 @UseGuards 装饰器,装饰器接收无限制个数的参数,参数的值就是要在这个使用的守卫,添加一个 DemoAuthGuard,如果还有其它要使用的 Guard,你可以用逗号分隔一下,然后继承再添加其它的守卫。
在客户端,配置一个请求,比如用 POST 方法请求一下 posts 这个地址, 这个请求是用 posts.controller 里提供的方法来处理,所以请求就会被我们在 posts.controller 上用的守卫检查 。
不过现在这个守卫会放行所有的请求,因为不管怎么样它都会一直返回 true , 我们先手工让 canActivate 方法返回 false。
回到客户端,再发送一下这个请求, 这回得到的响应的状态码是 403,表示没有权限,响应的数据里面 statusCode 是状态码, error 是错误信息,还有一个 message 属性,它的值更具体的说明了这个 403 错误。