Compare commits

..

No commits in common. "108bafe299cec2dbf49a8261e706e03f1ab15a75" and "30b9b5da1d833ae1838e0517a7c986d6ec0b0c39" have entirely different histories.

3 changed files with 27 additions and 31 deletions

1
bindAPI/.gitignore vendored
View File

@ -1,4 +1,3 @@
.idea .idea
/vendor/ /vendor/
/config.json

View File

@ -1,14 +1,16 @@
#!/usr/bin/keyhelp-php81 #!/usr/bin/keyhelp-php81
<?php <?php
if (php_sapi_name() !== 'cli') { if (php_sapi_name() !== 'cli') {
exit; exit;
} }
require dirname(path: __DIR__) . '/vendor/autoload.php'; require dirname(__DIR__) . '/vendor/autoload.php';
use App\Controller\BindAPI; use App\Controller\BindAPI;
$configFile = dirname(path: __DIR__) ."/config.json"; // read config
$configFile = __DIR__ ."/../config.json";
$configJSON = file_get_contents($configFile); $configJSON = file_get_contents($configFile);
$config = json_decode($configJSON, associative: true); $config = json_decode($configJSON, associative: true);

View File

@ -20,13 +20,13 @@ class ApiUsers
*/ */
public function findAll(): bool|array public function findAll(): bool|array
{ {
$sql = " $statement = "
SELECT id, api_token_prefix, api_token SELECT id, api_token_prefix, api_token
FROM user"; FROM user";
try { try {
$statement = $this->dbConnection->query($sql); $statement = $this->dbConnection->query($statement);
return $statement->fetchAll(mode: PDO::FETCH_ASSOC); return $statement->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) { } catch (PDOException $e) {
exit($e->getMessage()); exit($e->getMessage());
} }
@ -40,46 +40,40 @@ class ApiUsers
*/ */
public function findByID(Int $id): bool|array public function findByID(Int $id): bool|array
{ {
$sql = " $statement = "
SELECT api_token_prefix, api_token SELECT api_token_prefix, api_token
FROM user FROM user
WHERE id = :id; WHERE id = :id;
"; ";
try { try {
$statement = $this->dbConnection->prepare($sql); $statement = $this->dbConnection->prepare($statement);
$statement->bindParam(param: ':id', var: $id); $statement->bindParam(':id', $id);
$statement->execute(); $statement->execute();
return $statement->fetch(mode: PDO::FETCH_ASSOC); return $statement->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) { } catch (PDOException $e) {
exit($e->getMessage()); exit($e->getMessage());
} }
} }
/**
* @param String $prefix
*
* @return bool|array
*/
public function findByPrefix(String $prefix): bool|array public function findByPrefix(String $prefix): bool|array
{ {
$sql = " $statement = "
SELECT api_token SELECT api_token
FROM user FROM user
WHERE api_token_prefix = :prefix"; WHERE api_token_prefix = :prefix;
";
try { try {
$statement = $this->dbConnection->prepare($sql); $statement = $this->dbConnection->prepare($statement);
$statement->bindParam(param: ':prefix', var: $prefix); $statement->bindParam(':prefix', $prefix);
$statement->execute(); $statement->execute();
return $statement->fetch(mode: PDO::FETCH_ASSOC); return $statement->fetch(PDO::FETCH_ASSOC);
} catch (PDOException $e) { } catch (PDOException $e) {
exit($e->getMessage()); exit($e->getMessage());
} }
} }
/** /**
* @return array|void * @return array|void
*/ */
@ -88,22 +82,22 @@ class ApiUsers
$tokenPrefix = uniqid(); $tokenPrefix = uniqid();
$result['tokenPrefix'] = $tokenPrefix; $result['tokenPrefix'] = $tokenPrefix;
try { try {
$key = bin2hex(random_bytes(length: 24)); $key = bin2hex(random_bytes(24));
$result['key'] = $key; $result['key'] = $key;
} catch (Exception $e) { } catch (Exception $e) {
echo $e->getMessage() . PHP_EOL; echo $e->getMessage() . PHP_EOL;
exit(1); exit(1);
} }
$token = password_hash(password: $tokenPrefix . '.' . $key, algo: PASSWORD_ARGON2ID); $token = password_hash($tokenPrefix . '.' . $key, PASSWORD_ARGON2ID);
$sql = " $statement = "
INSERT INTO user (api_token_prefix, api_token) INSERT INTO user (api_token_prefix, api_token)
VALUES (:token_prefix, :token)"; VALUES (:token_prefix, :token)";
try { try {
$statement = $this->dbConnection->prepare($sql); $statement = $this->dbConnection->prepare($statement);
$statement->bindParam(param: ':token_prefix', var: $tokenPrefix); $statement->bindParam(':token_prefix', $tokenPrefix);
$statement->bindParam(param: ':token', var: $token); $statement->bindParam(':token', $token);
$statement->execute(); $statement->execute();
$result['row'] = $this->dbConnection->lastInsertId(); $result['row'] = $this->dbConnection->lastInsertId();
return $result; return $result;
@ -120,13 +114,13 @@ class ApiUsers
*/ */
public function delete($id): int public function delete($id): int
{ {
$sql = " $statement = "
DELETE FROM user DELETE FROM user
WHERE id = :id"; WHERE id = :id";
try { try {
$statement = $this->dbConnection->prepare($sql); $statement = $this->dbConnection->prepare($statement);
$statement->bindParam(param: 'id', var: $id); $statement->bindParam('id', $id);
$statement->execute(); $statement->execute();
return $statement->rowCount(); return $statement->rowCount();
} catch (PDOException $e) { } catch (PDOException $e) {
@ -134,4 +128,5 @@ class ApiUsers
} }
} }
} }