创建应用全局中间件
在adminapi
目录下新建middleware/BaseMiddleware.php
,内容如下:
<?php
namespace app\adminapi\middleware;
use app\Request;
use xkadmin\interfaces\MiddlewareInterface;
/**
* Class BaseMiddleware
* @package app\api\middleware
*/
class BaseMiddleware implements MiddlewareInterface
{
/**
* @param Request $request
* @param \Closure $next
* @param bool $force
* @return mixed
*/
public function handle(Request $request, \Closure $next, bool $force = true)
{
if (!$request->hasMacro('uid')) {
$request->macro('uid', function(){
return 0; });
}
if (!$request->hasMacro('adminId')) {
$request->macro('adminId', function(){
return 0; });
}
return $next($request);
}
}
使用中间件
在adminapi
目录下,新建middleware.php
文件,内容如下:
<?php
// 应用全局中间件定义文件
return [
//初始化基础中间件
\app\adminapi\middleware\BaseMiddleware::class,
];
调整下基类
我们在基类xkadmin\basic\BaseController.php
与之前的控制器中间增加一层权限控制器AuthController.php
。
在adminapi/controller
目录下新建AuthController.php
文件,内容如下:
<?php
namespace app\adminapi\controller;
use think\facade\Validate;
use xkadmin\basic\BaseController;
/**
* 基类 所有控制器继承的类
* Class AuthController
* @package app\adminapi\controller
*/
class AuthCon