Reauth params in config
This commit is contained in:
parent
9828ee762a
commit
45d4ebcded
@ -61,4 +61,14 @@ class Config
|
|||||||
{
|
{
|
||||||
return Config::getInstance()->database;
|
return Config::getInstance()->database;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getTokenExpiry(): string
|
||||||
|
{
|
||||||
|
return Config::getInstance()->app["tokenExpiry"];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getRefreshTokenExpiry(): string
|
||||||
|
{
|
||||||
|
return Config::getInstance()->app["refreshTokenExpiry"];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -155,16 +155,16 @@ class User implements JsonSerializable
|
|||||||
$stmt->bindValue(":ID", $user->getID());
|
$stmt->bindValue(":ID", $user->getID());
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
}
|
}
|
||||||
|
// Generate tokens only if expired or missing
|
||||||
if (empty($data["token"]) || new DateTime($data["tokenExpiry"]) <= new DateTime()) {
|
if (empty($data["token"]) || new DateTime($data["tokenExpiry"]) <= new DateTime()) {
|
||||||
// Generate token
|
|
||||||
$stmt = $db->prepare(
|
$stmt = $db->prepare(
|
||||||
"UPDATE
|
"UPDATE
|
||||||
egb_benutzer
|
egb_benutzer
|
||||||
SET
|
SET
|
||||||
token = UUID(),
|
token = UUID(),
|
||||||
tokenExpiry = DATE_ADD(NOW(), INTERVAL 1 HOUR),
|
tokenExpiry = DATE_ADD(NOW(), INTERVAL " . Config::getTokenExpiry() . "),
|
||||||
refreshToken = UUID(),
|
refreshToken = UUID(),
|
||||||
refreshExpiry = DATE_ADD(NOW(), INTERVAL 30 DAY)
|
refreshExpiry = DATE_ADD(NOW(), INTERVAL " . Config::getRefreshTokenExpiry() . ")
|
||||||
WHERE id = :ID"
|
WHERE id = :ID"
|
||||||
);
|
);
|
||||||
$stmt->bindValue(":ID", $user->getID());
|
$stmt->bindValue(":ID", $user->getID());
|
||||||
@ -278,7 +278,7 @@ class User implements JsonSerializable
|
|||||||
$db = Database::getInstance();
|
$db = Database::getInstance();
|
||||||
$stmt = $db->prepare(
|
$stmt = $db->prepare(
|
||||||
"SELECT
|
"SELECT
|
||||||
b.id, b.benutzer, b.status, b.email, b.image, b.isadmin, b.zeitstempel,
|
b.id, b.benutzer, b.status, b.email, b.image, b.isadmin, b.zeitstempel, b.tokenExpiry,
|
||||||
(SELECT COUNT(*) FROM egb_gaestebuch WHERE benutzer_id = b.id) as postCount
|
(SELECT COUNT(*) FROM egb_gaestebuch WHERE benutzer_id = b.id) as postCount
|
||||||
FROM
|
FROM
|
||||||
egb_benutzer AS b
|
egb_benutzer AS b
|
||||||
@ -296,18 +296,21 @@ class User implements JsonSerializable
|
|||||||
|
|
||||||
$user = new User($data["id"], $data["benutzer"], $data["status"], $data["email"], $data["zeitstempel"], $data["image"], $data["isadmin"] === 1, $data["postCount"]);
|
$user = new User($data["id"], $data["benutzer"], $data["status"], $data["email"], $data["zeitstempel"], $data["image"], $data["isadmin"] === 1, $data["postCount"]);
|
||||||
|
|
||||||
$stmt = $db->prepare(
|
// Update tokens if expired
|
||||||
"UPDATE
|
if (new DateTime($data["tokenExpiry"]) <= new DateTime()) {
|
||||||
|
$stmt = $db->prepare(
|
||||||
|
"UPDATE
|
||||||
egb_benutzer
|
egb_benutzer
|
||||||
SET
|
SET
|
||||||
token = UUID(),
|
token = UUID(),
|
||||||
tokenExpiry = DATE_ADD(NOW(), INTERVAL 1 HOUR),
|
tokenExpiry = DATE_ADD(NOW(), INTERVAL " . Config::getTokenExpiry() . "),
|
||||||
refreshToken = UUID(),
|
refreshToken = UUID(),
|
||||||
refreshExpiry = DATE_ADD(NOW(), INTERVAL 30 DAY)
|
refreshExpiry = DATE_ADD(NOW(), INTERVAL " . Config::getRefreshTokenExpiry() . ")
|
||||||
WHERE id = :ID"
|
WHERE id = :ID"
|
||||||
);
|
);
|
||||||
$stmt->bindValue(":ID", $user->getID());
|
$stmt->bindValue(":ID", $user->getID());
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
|
}
|
||||||
|
|
||||||
// Get token
|
// Get token
|
||||||
$stmt = $db->prepare("SELECT token, refreshToken FROM egb_benutzer WHERE id = :ID");
|
$stmt = $db->prepare("SELECT token, refreshToken FROM egb_benutzer WHERE id = :ID");
|
||||||
|
|||||||
@ -4,5 +4,7 @@ return [
|
|||||||
"basePath" => "/phpCourse/exam/",
|
"basePath" => "/phpCourse/exam/",
|
||||||
"storagePath" => "/phpCourse/exam/storage/",
|
"storagePath" => "/phpCourse/exam/storage/",
|
||||||
"baseFSPath" => "/home/k/khofmann/public_html/phpCourse/exam/",
|
"baseFSPath" => "/home/k/khofmann/public_html/phpCourse/exam/",
|
||||||
"storageFSPath" => "/home/k/khofmann/public_html/phpCourse/exam/storage/"
|
"storageFSPath" => "/home/k/khofmann/public_html/phpCourse/exam/storage/",
|
||||||
|
"tokenExpiry" => "5 MINUTE",
|
||||||
|
"refreshTokenExpiry" => "30 MINUTE"
|
||||||
];
|
];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user