CheckAuth.php 829 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. namespace App\libs\middleware;
  3. use App\Auth;
  4. use App\Models\User;
  5. use Illuminate\Http\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. class CheckAuth
  8. {
  9. /**
  10. * 处理传入请求。
  11. *
  12. * @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
  13. */
  14. public function handle(Request $request, \Closure $next): Response
  15. {
  16. $this->user = auth('api')->user();
  17. $this->userId = $this->user ? $this->user->id : 0;
  18. $user = User::query()->where('id', $this->userId)->where('is_black', 0)->first();
  19. if (!$user) {
  20. abort(401);
  21. }
  22. if ($user->is_black) {
  23. abort(402);
  24. }
  25. Auth::$user = $user;
  26. Auth::$userId = $user->id;
  27. return $next($request);
  28. }
  29. }