implemented cookie login
All checks were successful
Build and push / Pulling repo on server (push) Successful in 3s
All checks were successful
Build and push / Pulling repo on server (push) Successful in 3s
This commit is contained in:
parent
460fb6b1ee
commit
cfa964b4c5
@ -54,9 +54,9 @@ class User extends Model {
|
||||
$u = new User();
|
||||
$u->load($id);
|
||||
if($filtered===true)
|
||||
$users[] = $u->getDataFiltered();
|
||||
$users[$id] = $u->getDataFiltered();
|
||||
else
|
||||
$users[] = $u->data;
|
||||
$users[$id] = $u->data;
|
||||
}
|
||||
return $users;
|
||||
}
|
||||
|
@ -11,6 +11,27 @@ class Err extends Page {
|
||||
|
||||
function notallowed()
|
||||
{
|
||||
//check if user has a cookie and if so, logg them in and refresh the page
|
||||
if(isset($_COOKIE['token']))
|
||||
{
|
||||
$u = new User();
|
||||
$allusers = $u->getAll(false);
|
||||
foreach($allusers as $userid => $user)
|
||||
{
|
||||
if($user['token'] && $user['token'] == $_COOKIE['token'])
|
||||
{
|
||||
$u->id = $userid;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($u->id)
|
||||
{
|
||||
$u->login();
|
||||
$this->redirect($_SERVER['REQUEST_URI']);
|
||||
}
|
||||
}
|
||||
|
||||
$this->set("loggedin",(isset($_SESSION['user']) && $_SESSION['user'] !== false));
|
||||
$this->set('template', "notallowed.html");
|
||||
}
|
||||
|
@ -43,6 +43,8 @@ class Login extends Page {
|
||||
|
||||
function logout()
|
||||
{
|
||||
//delete cookie
|
||||
setcookie('token', '', time() - 3600, "/");
|
||||
session_destroy();
|
||||
$this->redirect('/');
|
||||
}
|
||||
@ -77,6 +79,25 @@ class Login extends Page {
|
||||
$error = 'Dein Account ist noch nicht aktiviert';
|
||||
else
|
||||
{
|
||||
//if $remmeber is true, create and set cookie so the user will be automatically logged in next time
|
||||
if($remember)
|
||||
{
|
||||
//check if user has a valid cookie
|
||||
if(isset($_COOKIE['token']) && $u->token == $_COOKIE['token'])
|
||||
{
|
||||
$token =$u->token;
|
||||
setcookie('token', $token, time() + (86400 * 30), "/");
|
||||
}
|
||||
else
|
||||
{
|
||||
//if no, create a new token
|
||||
$token = uuid4();
|
||||
$u->token = $token;
|
||||
$u->save();
|
||||
setcookie('token', $token, time() + (86400 * 30), "/");
|
||||
}
|
||||
}
|
||||
|
||||
$u->login();
|
||||
if($_SERVER['HTTP_HX_CURRENT_URL'] && !endsWith($_SERVER['HTTP_HX_CURRENT_URL'],'/login'))
|
||||
$this->redirect($_SERVER['HTTP_HX_CURRENT_URL']);
|
||||
|
Reference in New Issue
Block a user