再去创建一个守卫,在终端,执行 nest generate 生成一个 guard,名字是 demoRoles,放在 core/guards 的下面。
下面再把创建这个 Guard 绑定在 App 模块里面。
打开 app.module, 在它的 @Module 装饰器的 providers 属性里面,给它一个对象, 先用 provide 设置一下, 值是 APP_GUARD,下面再用 useClass, 值可以设置成 DemoRolesGuard,这样这个守卫就会用在 App 模块上。
这个模块下面包含了应用里的其它模块,所以这个守卫也就会用在所有的模块上。
打开这个守卫,先手动让它的 canActivate 方法返回 false, 然后打开 posts.controller,去掉之前用在这个控制器上的 demoAuth 守卫。
在客户端,配置一个请求, 用 POST 方法请求 posts 地址,得到的响应是 403,因为用在 App 模块上的 demoRoles 守卫会一直返回 false,不让请求通过。