diff options
author | vincent-peugnet <v.peugnet@free.fr> | 2020-05-15 20:05:26 +0200 |
---|---|---|
committer | vincent-peugnet <v.peugnet@free.fr> | 2020-05-15 20:05:26 +0200 |
commit | ded1b2a19ee238543d561b6f26312458d2a43974 (patch) | |
tree | b5569c95266ad7482298a7feffb6a3be24a19844 /app/class/Controller.php | |
parent | 3f69df3b93510f2704f3af9d54b9bf3b34d0e6bb (diff) | |
download | wcms-ded1b2a19ee238543d561b6f26312458d2a43974.tar.gz wcms-ded1b2a19ee238543d561b6f26312458d2a43974.zip |
new cookie session system
composer require JWT
user stores sessions
Diffstat (limited to 'app/class/Controller.php')
-rw-r--r-- | app/class/Controller.php | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/app/class/Controller.php b/app/class/Controller.php index 11a2c12..c631726 100644 --- a/app/class/Controller.php +++ b/app/class/Controller.php @@ -45,17 +45,30 @@ class Controller public function setuser() { - if (empty($this->session->user)) { - $this->user = new User(); - } else { - if (!$this->user = $this->usermanager->get($this->session->user)) { - if (!$this->user = $this->usermanager->readcookie()) { - $this->user = new User(); + // check session, then cookies + if (!empty($this->session->user)) { + $user = $this->usermanager->get($this->session->user); + } elseif (!empty($_COOKIE['authtoken'])) { + try { + $modelconnect = new Modelconnect(); + $datas = $modelconnect->checkcookie(); + $user = $this->usermanager->get($datas['userid']); + if ($user !== false && $user->checksession($datas['wsession'])) { + $this->session->addtosession("wsession", $datas['wsession']); + $this->session->addtosession("user", $datas['userid']); } else { - $this->session->addtosession('user', $this->user->id()); + $user = false; } + } catch (Exception $e) { + Model::sendflashmessage("Invalid Autentification cookie exist : $e", "warning"); } } + // create visitor + if (empty($user)) { + $this->user = new User(); + } else { + $this->user = $user; + } } public function initplates() |