35 lines
1.1 KiB
PHP
35 lines
1.1 KiB
PHP
<?php
|
|
namespace Contabilidad\Common\Controller;
|
|
|
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
|
use Psr\Http\Message\ResponseInterface as Response;
|
|
use ProVM\Common\Define\Controller\Json;
|
|
|
|
class Base {
|
|
use Json;
|
|
|
|
public function __invoke(Request $request, Response $response): Response {
|
|
return $this->withJson($response, []);
|
|
}
|
|
public function generate_key(Request $request, Response $response): Response {
|
|
$server_addr = explode('.', $request->getServerParams()['SERVER_ADDR']);
|
|
$remote_addr = explode('.', $request->getServerParams()['REMOTE_ADDR']);
|
|
for ($i = 0; $i < 3; $i ++) {
|
|
if ($server_addr[$i] != $remote_addr[$i]) {
|
|
throw new \InvalidArgumentException('Invalid connection address.');
|
|
}
|
|
}
|
|
$salt = mt_rand();
|
|
$signature = hash_hmac('sha256', $salt, 'contabilidad', true);
|
|
$key = urlencode(base64_encode($signature));
|
|
return $this->withJson($response, ['key' => $key]);
|
|
}
|
|
public function info(Request $request, Response $response): Response {
|
|
ob_start();
|
|
phpinfo();
|
|
$data = ob_get_clean();
|
|
$response->getBody()->write($data);
|
|
return $response;
|
|
}
|
|
}
|