AppVersion.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Module\AppGame\Middleware;
  3. use App\Module\System\Services\ConfigService;
  4. use Closure;
  5. use Illuminate\Http\Request;
  6. use Uraus\Kku\Response;
  7. /**
  8. * 检测app版本号验证
  9. */
  10. class AppVersion
  11. {
  12. /**
  13. * Handle an incoming request.
  14. *
  15. * @param \Illuminate\Http\Request $request
  16. * @param \Closure $next
  17. * @return mixed
  18. */
  19. public function handle(Request $request, Closure $next)
  20. {
  21. // 是否校验版本号
  22. $isCheckVersion = ConfigService::getValueDefault('is_check_app_version');
  23. if ($isCheckVersion == 0) {
  24. return $next($request);
  25. }
  26. // 获取app版本号
  27. $appVersion = $request->header('appversion');
  28. if (empty($appVersion)) {
  29. return $this->error();
  30. }
  31. // 对比app版本号
  32. $systemVersion = ConfigService::getValueDefault('min_app_version');
  33. if ($appVersion !== $systemVersion) {
  34. return $this->error();
  35. }
  36. return $next($request);
  37. }
  38. private function error()
  39. {
  40. $response = new Response();
  41. $response->setCode(\Uraus\Kku\Common\RESPONSE_CODE::REQUEST_ERROR);
  42. $response->setMsg('请重启更新app');
  43. return \App\Module\AppGame\Tools\Protobuf::response($response);
  44. }
  45. }