From e20206d4a54216def49f913997c45111bd7beb9d Mon Sep 17 00:00:00 2001 From: Kilian Hofmann Date: Mon, 29 Jul 2024 19:33:00 +0200 Subject: [PATCH] API Usage refreshes --- exam/classes/Auth/AdminAuth.php | 3 +++ exam/classes/Auth/Auth.php | 5 ++++- exam/classes/Auth/OptAuth.php | 5 ++++- exam/classes/Models/User/User.php | 21 ++++++++++++++++++++- 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/exam/classes/Auth/AdminAuth.php b/exam/classes/Auth/AdminAuth.php index 506cf4c..9d5ac90 100644 --- a/exam/classes/Auth/AdminAuth.php +++ b/exam/classes/Auth/AdminAuth.php @@ -36,6 +36,9 @@ class AdminAuth implements IMiddleware ->httpCode(401) ->json(["code" => "NotAllowed", "message" => "Not Authorized"]); } + + // Keep fresh + $user->keepFresh(); } catch (Exception $err) { // No user with this token exists Response::response() diff --git a/exam/classes/Auth/Auth.php b/exam/classes/Auth/Auth.php index baff77e..51586c8 100644 --- a/exam/classes/Auth/Auth.php +++ b/exam/classes/Auth/Auth.php @@ -26,7 +26,10 @@ class Auth implements IMiddleware } try { - User::getByToken($token); + $user = User::getByToken($token); + + // Keep fresh + $user->keepFresh(); } catch (Exception $err) { // No user with this token exists Response::response() diff --git a/exam/classes/Auth/OptAuth.php b/exam/classes/Auth/OptAuth.php index 8f2b9f5..c5c21dd 100644 --- a/exam/classes/Auth/OptAuth.php +++ b/exam/classes/Auth/OptAuth.php @@ -20,7 +20,10 @@ class OptAuth implements IMiddleware } try { - User::getByToken($token); + $user = User::getByToken($token); + + // Keep fresh + $user->keepFresh(); } catch (Exception $err) { // No user with this token exists Response::response() diff --git a/exam/classes/Models/User/User.php b/exam/classes/Models/User/User.php index 92f998f..6a97044 100644 --- a/exam/classes/Models/User/User.php +++ b/exam/classes/Models/User/User.php @@ -214,7 +214,7 @@ class User implements JsonSerializable mail( $email, "Account activation GuestBookDB", - "Hello $username. To activate your account, visit https://khofmann.userpage.fu-berlin.de/phpCourse/exam/confirm?c=$guid" + "Hello $username. To activate your account, visit https://khofmann.userpage.fu-berlin.de/phpCourse/exam/confirm?code=$guid" ); return $user; @@ -239,6 +239,7 @@ class User implements JsonSerializable WHERE id = :UID" ); $stmt->bindValue(":UID", $user->getID()); + $stmt->execute(); return User::getByID($user->getID()); } @@ -542,6 +543,24 @@ class User implements JsonSerializable return ["pages" => intdiv($count, $limit + 1) + 1, "data" => $list]; } + public function keepFresh() + { + try { + $db = Database::getInstance(); + $stmt = $db->prepare( + "UPDATE + egb_benutzer + SET + tokenExpiry = DATE_ADD(NOW(), INTERVAL " . Config::getTokenExpiry() . "), + refreshExpiry = DATE_ADD(NOW(), INTERVAL " . Config::getRefreshTokenExpiry() . ") + WHERE id = :ID" + ); + $stmt->bindValue(":ID", $this->getID()); + $stmt->execute(); + } catch (Exception $err) { + } + } + /* * Getters */