| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- namespace App\Http\Middleware;
- use Auth;
- use Closure;
- use phpDocumentor\Reflection\DocBlock\Tags\Var_;
- use Tymon\JWTAuth\Exceptions\JWTException;
- use Tymon\JWTAuth\Http\Middleware\BaseMiddleware;
- use Tymon\JWTAuth\Exceptions\TokenExpiredException;
- use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
- class AuthTokenByMaybe extends BaseMiddleware
- {
- /**
- * @author fatty
- * @date 2019/3/11
- * @param $request
- * @param Closure $next
- * @return mixed
- * @description
- * 不强制认证访问令牌接口
- */
- public function handle($request, Closure $next)
- {
- try {
- // 判断是否存在token
- $this->checkForToken($request);
- try {
- // 验证token
- if ($result = $this->auth->parseToken()->authenticate()) {
- return $next($request);
- }
- return showJson(102, '请登录');
- //throw new UnauthorizedHttpException('jwt-auth', '未登录');
- } catch (TokenExpiredException $exception) {
- $token = $this->auth->refresh();
- try {
- Auth::guard('api')->onceUsingId($this->auth->manager()->getPayloadFactory()->buildClaimsCollection()->toPlainArray()['sub']);
- } catch (JWTException $exception) {
- return showJson(102, $exception->getMessage());
- //throw new UnauthorizedHttpException('jwt-auth', $exception->getMessage());
- }
- }
- return showJson(103, '您的登录信息已过期,请重新登录!', ['token' => $token]);
- } catch (\Exception $exception) {
- return $next($request);
- // return showJson(102, $exception->getMessage());
- }
- }
- }
|