JwtMiddleware.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. use App\Models\User;
  6. use Tymon\JWTAuth\Exceptions\JWTException;
  7. use Tymon\JWTAuth\Exceptions\TokenBlacklistedException;
  8. use Tymon\JWTAuth\Exceptions\TokenExpiredException;
  9. use Tymon\JWTAuth\Exceptions\TokenInvalidException;
  10. class JwtMiddleware extends BaseJwtMiddleware
  11. {
  12. public string $platform = "api";
  13. protected function getGuard()
  14. {
  15. return 'api';
  16. }
  17. protected function getUserModel()
  18. {
  19. return User::class;
  20. }
  21. protected function authFailedResponse()
  22. {
  23. return response()->json([
  24. 'code' => 401,
  25. 'message' => '用户认证失败',
  26. 'data' => null
  27. ]);
  28. }
  29. protected function checkUserStatus($user)
  30. {
  31. // 检查用户状态(如被封禁)
  32. if (property_exists($user, 'status') && $user->status === 0) {
  33. return response()->json([
  34. 'code' => 401,
  35. 'message' => '账号已被封禁',
  36. 'data' => null
  37. ]);
  38. }
  39. return null;
  40. }
  41. }