// +---------------------------------------------------------------------- namespace app\adminapi\middleware; use app\Request; use app\services\system\admin\AdminAuthServices; use crmeb\exceptions\AuthException; use crmeb\interfaces\MiddlewareInterface; use think\facade\Config; /** * 后台登陆验证中间件 * Class AdminAuthTokenMiddleware * @package app\adminapi\middleware */ class AdminEditorTokenMiddleware implements MiddlewareInterface { public function handle(Request $request, \Closure $next) { $authInfo = null; $token = trim(ltrim($request->header(Config::get('cookie.token_name', 'Authori-zation')), 'Bearer')); /** @var AdminAuthServices $service */ $service = app()->make(AdminAuthServices::class); $adminInfo = $service->parseToken($token,110008); if($adminInfo['type'] !== 'admin_edit') { throw new AuthException('登陆异常,请重新登录',[],110008); } Request::macro('isAdminLogin', function () use (&$adminInfo) { return !is_null($adminInfo); }); Request::macro('adminId', function () use (&$adminInfo) { return $adminInfo['id']; }); Request::macro('adminInfo', function () use (&$adminInfo) { return $adminInfo; }); return $next($request); } }