根据用户访问的路由判断有无权限访问
首先,我使用的是用户角色权限控制包 Laravel-permissio,
关于怎么样设置权限,请看地址
在权限设置好后,需要去验证某个用户有没有权限访问某个路由,
就要去设置一个中间件,
生成中间件
php artisan make:middleware CheckPermission
在中间件里面写入
//验证用户是否具有请求权限
$user = auth('api')->user();
if (!$user->can($request->route()->getName())) {
abort(403, '你无权限访问');
}
return $next($request);
这个$request->route()->getName()是获取当前访问的路由名称,因为路由名称在定义路由的时候都是设置好的了,所以,这里可以直接获取
好了,中间件设置好了,就要去注册一下才可以使用
路径在appHttpKernel.php里面的$routeMiddleware数组
在数组里面加入就可以了
'check.permission'=>AppHttpMiddlewareCheckPermission::class,//用户权限中间件
注册好了,可以使用了,就去路由组里面去使用它
竟然是验证有无权限,就需要用户登录,那么就在需要用户登录组里面使用这个中间件
$api->group(['middleware' => ['api.auth','check.permission']], function ($api) {}
这个路由组里面的所有路由都需要权限验证了
比如,无权限验证就提示无权限
有权限的用户就可以访问
版权声明:
作者:linrux
链接:https://www.tot7.cn/technology/php/38.html
来源:Code林
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论