35 lines
1.0 KiB
PHP
35 lines
1.0 KiB
PHP
<?php
|
|
namespace catchAdmin\user;
|
|
|
|
use catcher\Code;
|
|
use catcher\exceptions\FailedException;
|
|
use thans\jwt\exception\TokenBlacklistException;
|
|
use thans\jwt\exception\TokenExpiredException;
|
|
use thans\jwt\exception\TokenInvalidException;
|
|
use thans\jwt\facade\JWTAuth;
|
|
use think\Middleware;
|
|
|
|
class AuthTokenMiddleware extends Middleware
|
|
{
|
|
public function handle($request, \Closure $next)
|
|
{
|
|
try {
|
|
JWTAuth::auth();
|
|
} catch (\Exception $e) {
|
|
if ($e instanceof TokenExpiredException) {
|
|
throw new FailedException('token 过期', Code::LOST_LOGIN);
|
|
}
|
|
if ($e instanceof TokenBlacklistException) {
|
|
throw new FailedException('token 被加入黑名单', Code::LOST_LOGIN);
|
|
}
|
|
if ($e instanceof TokenInvalidException) {
|
|
throw new FailedException('token 不合法', Code::LOST_LOGIN);
|
|
}
|
|
|
|
throw new FailedException('登录用户不合法', Code::LOST_LOGIN);
|
|
}
|
|
|
|
return $next($request);
|
|
}
|
|
}
|