// +---------------------------------------------------------------------- namespace app\http\middleware\api; use app\Request; use app\services\user\UserAuthServices; use Closure; use Psr\SimpleCache\InvalidArgumentException; use qiniu\exceptions\AuthException; use qiniu\interfaces\MiddlewareInterface; /** * Class AuthTokenMiddleware * @package app\api\middleware */ class AuthTokenMiddleware implements MiddlewareInterface { /** * @param Request $request * @param Closure $next * @param bool $force * @return mixed|object * @throws InvalidArgumentException */ public function handle(Request $request, Closure $next, bool $force = true) { $authInfo = null; $token = trim(ltrim($request->header('Authori-zation'), 'Bearer')); if (!$token) $token = trim(ltrim($request->header('Authorization'), 'Bearer'));//正式版,删除此行,某些服务器无法获取到token调整为 Authori-zation try { /** @var UserAuthServices $service */ $service = app()->make(UserAuthServices::class); $authInfo = $service->parseToken($token); } catch (AuthException $e) { if ($force) return app('json')->make($e->getCode(), $e->getMessage()); } if (!is_null($authInfo)) { $request->setUser($authInfo['user']); $request->setTokenData($authInfo['tokenData']); } return $next($request); } }