Mod_Mu.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Middleware;
  3. use App\Services\Config;
  4. use Psr\Http\Message\ServerRequestInterface;
  5. use Psr\Http\Message\ResponseInterface;
  6. use App\Utils\Helper;
  7. use App\Models\Node;
  8. class Mod_Mu
  9. {
  10. public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $next)
  11. {
  12. $key = Helper::getMuKeyFromReq($request);
  13. if ($key == null) {
  14. $res['ret'] = 0;
  15. $res['data'] = 'key is null';
  16. $response->getBody()->write(json_encode($res));
  17. return $response;
  18. }
  19. $auth = false;
  20. $keyset = explode(',', Config::get('muKey'));
  21. foreach ($keyset as $sinkey) {
  22. if ($key == $sinkey) {
  23. $auth = true;
  24. break;
  25. }
  26. }
  27. if ($auth == false) {
  28. $res['ret'] = 0;
  29. $res['data'] = 'token or source is invalid';
  30. $response->getBody()->write(json_encode($res));
  31. return $response;
  32. }
  33. $node = Node::where('node_ip', 'LIKE', $_SERVER['REMOTE_ADDR'] . '%')->first();
  34. if ($node == null && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') {
  35. $res['ret'] = 0;
  36. $res['data'] = 'token or source is invalid, Your ip address is ' . $_SERVER['REMOTE_ADDR'];
  37. $response->getBody()->write(json_encode($res));
  38. return $response;
  39. }
  40. $response = $next($request, $response);
  41. return $response;
  42. }
  43. }