diff --git a/dev_mvc/controller/Database.php b/dev_mvc/controller/Database.php index 38e5d64..aade9ff 100644 --- a/dev_mvc/controller/Database.php +++ b/dev_mvc/controller/Database.php @@ -235,7 +235,6 @@ Class Database{ $query->execute(); //Check hoeveelheid teruggestuurde rijen if($query->rowCount() == 1){ - echo('session valid in db
'); return true; } else{ @@ -243,7 +242,6 @@ Class Database{ } } static function invalidateSession($token){ - echo("hek"); //Init db connection $con = Database::connectToDB(); //Bereid query voor diff --git a/dev_mvc/controller/UserSession.php b/dev_mvc/controller/UserSession.php index b35bfab..4ce30a7 100644 --- a/dev_mvc/controller/UserSession.php +++ b/dev_mvc/controller/UserSession.php @@ -1,15 +1,12 @@ username = $username; + public function UserSession($uid, $token = "undefined"){ $this->uid = $uid; $this->token = $token; $this->setExpiry(); - //echo($username."
"); //echo($loginSessionToken); $_SESSION['usersession'] = $this; setcookie('usersession', $this->token); @@ -39,7 +36,6 @@ Class UserSession{ public static function isSessionValid(){ if(isset($_SESSION['usersession'])){ if(!Database::isSessionValid($_SESSION['usersession']->token, $_SESSION['usersession']->uid)){ - echo('session invalid in db'); return false; } if(!UserSession::isSessionExpired($_SESSION['usersession'])){ @@ -52,8 +48,7 @@ Class UserSession{ $token = $_COOKIE['usersession']; $uid = $_COOKIE['uid']; if(Database::isSessionValid($token,$uid)){ - $username = Database::getUsername($uid); - $session = new UserSession($username, $uid, $token); + $session = new UserSession($uid, $token); $session->expires = new DateTime(Database::getSessionExpiryDate($token)); } else{ @@ -81,6 +76,7 @@ Class UserSession{ } } public static function isUserSignedIn(){ + /* if(UserSession::isSessionValid()){ if(!UserSession::isSessionExpired(UserSession::getSession())){ if(Database::isSessionValid(UserSession::getSession()->token, UserSession::getSession()->uid)){ @@ -95,11 +91,31 @@ Class UserSession{ else{ return false; } - } - public static function updateSigninState(){ - if(!UserSession::isUserSignedIn()){ - + */ + + //session exists, no need to do anything + if(isset($_SESSION['usersession'])){ + return true; } + else{ + if(isset($_COOKIE['usersession'])){ + //check if the session exists in the database + if(Database::isSessionTokenInUse($_COOKIE['usersession'])){ + //check if database expiration datetime is still valid + $expirationDateTime = Database::getSessionExpiryDate($_COOKIE['usersession']); + if(new DateTime($expirationDateTime) >= new DateTime()){ + //user is signed in. Restore session + $userSession = new UserSession($_COOKIE['uid'], $_COOKIE['usersession']); + return true; + } + else{ + Database::invalidateSession($_COOKIE['usersession']); + } + } + } + } + //session either doesn't exist, doesn't exist in cookie, doesn't exist in database, or is expired in the database. + return false; } } ?> \ No newline at end of file diff --git a/dev_mvc/index.php b/dev_mvc/index.php index fb03563..64c962a 100644 --- a/dev_mvc/index.php +++ b/dev_mvc/index.php @@ -19,7 +19,7 @@ include_once("./controller/ActionHandler.php"); session_start(); //Execute Actie zo nodig. ActionHandler::doAction(); -UserSession::UpdateSigninState(); + //Store de geselecteerde pagina in variabele $page diff --git a/dev_mvc/model/model_destroy.php b/dev_mvc/model/actions/model_destroy.php similarity index 61% rename from dev_mvc/model/model_destroy.php rename to dev_mvc/model/actions/model_destroy.php index ecf6762..10da7af 100644 --- a/dev_mvc/model/model_destroy.php +++ b/dev_mvc/model/actions/model_destroy.php @@ -1,3 +1,4 @@ \ No newline at end of file diff --git a/dev_mvc/model/actions/model_signout.php b/dev_mvc/model/actions/model_signout.php index 40f138b..2db1a67 100644 --- a/dev_mvc/model/actions/model_signout.php +++ b/dev_mvc/model/actions/model_signout.php @@ -1,7 +1,4 @@ token); -} +Database::invalidateSession($_COOKIE['usersession']); session_destroy(); ?> \ No newline at end of file diff --git a/dev_mvc/model/model_attempt_logout.php b/dev_mvc/model/model_attempt_logout.php deleted file mode 100644 index be94567..0000000 --- a/dev_mvc/model/model_attempt_logout.php +++ /dev/null @@ -1,7 +0,0 @@ -token); - session_destroy(); -} -?> \ No newline at end of file diff --git a/dev_mvc/model/model_do_login.php b/dev_mvc/model/model_do_login.php index 7a28ed9..a913762 100644 --- a/dev_mvc/model/model_do_login.php +++ b/dev_mvc/model/model_do_login.php @@ -3,7 +3,7 @@ $debuginfo = false; include_once("./controller/UserSession.php"); include_once("./controller/Database.php"); include_once("./controller/HUtils.php"); -if(!UserSession::isSessionValid()){ +if(!UserSession::isUserSignedIn()){ if(HUtils::issetPost(['email','password'])){ if(Database::isLoginValid($_POST['email'], $_POST['password'])){ //obtain UID @@ -17,7 +17,7 @@ if(!UserSession::isSessionValid()){ while(Database::isSessionTokenInUse($token)){ $token = UserSession::generateToken(); } - $a = new UserSession($username, $uid, $token); + $a = new UserSession($uid, $token); if($debuginfo){ echo $a->getSessionToken(); echo "
"; diff --git a/dev_mvc/view/pagecontent/content_header.php b/dev_mvc/view/pagecontent/content_header.php index 90f8ef8..184e0d0 100644 --- a/dev_mvc/view/pagecontent/content_header.php +++ b/dev_mvc/view/pagecontent/content_header.php @@ -4,7 +4,4 @@ if(UserSession::isUserSignedIn()){ }else{ include("./view/pagecontent/header/content_header_signedout.php"); } -if(!UserSession::isSessionValid()){ - include_once("./model/actions/model_signout.php"); -} ?> \ No newline at end of file diff --git a/dev_mvc/view/pagecontent/header/content_header_signedin.php b/dev_mvc/view/pagecontent/header/content_header_signedin.php index 39a112c..5d052ec 100644 --- a/dev_mvc/view/pagecontent/header/content_header_signedin.php +++ b/dev_mvc/view/pagecontent/header/content_header_signedin.php @@ -3,5 +3,5 @@ include_once("./controller/AssetHandler.php"); AssetHandler::printAsset("logo.png", true, 128); ?> \ No newline at end of file