1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- 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 implements MiddlewareInterface
- {
-
- 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'));
- try {
-
- $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);
- }
- }
|