Client.php 1002 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App\Utils\CacheKey;
  4. use Closure;
  5. use App\Models\User;
  6. use Illuminate\Support\Facades\Cache;
  7. class Client
  8. {
  9. /**
  10. * Handle an incoming request.
  11. *
  12. * @param \Illuminate\Http\Request $request
  13. * @param \Closure $next
  14. * @return mixed
  15. */
  16. public function handle($request, Closure $next)
  17. {
  18. $token = $request->input('token');
  19. if (empty($token) || $this->tokenNotInCache($token)) {
  20. abort(403, 'token is null');
  21. }
  22. $user = User::where('token', $token)->first();
  23. if (!$user) {
  24. abort(403, 'token is error');
  25. }
  26. $request->user = $user;
  27. return $next($request);
  28. }
  29. private function tokenNotInCache($token)
  30. {
  31. // schedule init complete?
  32. if (!Cache::get(CacheKey::get('SCHEDULE_LAST_CHECK_AT', null))) return true;
  33. if (Cache::get(CacheKey::get('SUBSCRIBE_TOKEN', $token))) return false;
  34. return true;
  35. }
  36. }