# :-: 编写中间件
## 中间件
中间件的编写就很简单了,利用助手函数 can 可以很简单实现,但是如果你不需要使用包内的,也可以自己定义middleware,因为有了助手函数之后,实际没有什么代码量了。
> 只需要在根目录下的 config 目录下 middleware 配置即可,具体可以参考文档
```php
namespace think\permissions;
class PermissionMiddleware
{
public function handle($request, \Closure $next)
{
$controller = $request->controller();
$action = $request->action();
if (!can(sprintf('%s@%s', $controller, $action))) {
return $request->isAjax() ? json(['message' => '没有权限访问'])->code(403) : abort(403, '没有权限访问');
}
return $next($request);
}
```