CheckToken.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
  4. use Closure;
  5. use \Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Cache;
  7. class CheckToken extends Middleware
  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 $request, Closure $next)
  17. {
  18. $params = $request->all();
  19. if(isset($params['token'])){
  20. $cacheKey = $params['token'];
  21. if(Cache::has($cacheKey)){
  22. $num = Cache::get($cacheKey);
  23. if($num >= 10){
  24. $json=[
  25. 'code'=>300,
  26. 'errorMessages' => 'Too many request,please wait a moment',
  27. 'success' =>false,
  28. ];
  29. }else{
  30. $num++;
  31. Cache::add($cacheKey,$num,3);
  32. return $next($request);
  33. }
  34. return response()->json($json);
  35. }else{
  36. Cache::add($cacheKey,1,3);
  37. }
  38. }
  39. $json=[
  40. 'code'=>300,
  41. 'errorMessages' => 'illegal access',
  42. 'success' =>false,
  43. ];
  44. return response()->json($json);
  45. }
  46. }