# :-: 編寫中間件
## 中間件
中間件的編寫就很簡單了,利用助手函數 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);
}
```