下面我们去创建一个可以判断当前用户权限的中间件 .. 它可以用在指定的路由上,这样用户访问路由地址的时候,会检查用户的指定权限 ...
先去创建一个中间件 .. aodnis make:middleware .. 名字是 Can .. 中间件的类型是 Http ..
打开项目的 start .. kernel.js ... 在 named middleware 这里注册一个中件间 .. 名字是 can .. 中间件是 App/Middleware/Can ..
Can
再打开创建的这个中间件 .. 中间件的 handle 方法里面有一些参数 .. 第一个参数是表示请求的 context ... 我需要里面的 auth .. 第二个参数是 next .. 第三个参数应该是中间件接收的参数 .. 名字可以是 args ..
在使用这个中间件的时候可以设置一些参数,这些参数应该就是需要检查的用户的权限 ..
里面添加一个 permissions .. 让它等于 args .. args 的值应该是个数组 ..
再添加一个 can .. await .. auth.user,表示当前登录的用户模型 .. 用一下我们通过 trait 在用户模型上添加的 can 这个方法 .. 把要检查的权限交给这个方法 .. 这里就是 permissions ..
下面判断一下 .. 如果 !can .. 我们可以 throw 一个 PermissionCheckException .. 这个异常是之前我们自己创建的 ..
文件的顶部再使用一下这个异常 .. 名字是 PermissionCheckException .. 位置是 App/Exceptions/PermissionCheckException ..
现在我们就定义好了一个可以判断当前用户权限的 can 中间件 ..