Просмотр файла app/Http/Middleware/CheckToken.php

Размер файла: 742B
  1. <?php
  2.  
  3. namespace App\Http\Middleware;
  4.  
  5. use App\Models\User;
  6. use Closure;
  7. use Illuminate\Http\Request;
  8.  
  9. class CheckToken
  10. {
  11. /**
  12. * Handle an incoming request.
  13. *
  14. * @param Request $request
  15. * @param Closure $next
  16. *
  17. * @return mixed
  18. */
  19. public function handle(Request $request, Closure $next)
  20. {
  21. $token = $request->input('token');
  22.  
  23. if (! $token) {
  24. abort(400, 'Api token missing');
  25. }
  26.  
  27. if (! $user = getUserByToken($token)) {
  28. abort(401, 'Unauthorized');
  29. }
  30.  
  31. if ($user->level === User::BANNED) {
  32. abort(403, 'User banned');
  33. }
  34.  
  35. $request->attributes->set('user', $user);
  36.  
  37. return $next($request);
  38. }
  39. }