Fix remember me feature
This commit is contained in:
parent
5652efc47e
commit
b2044e15b6
|
@ -37,17 +37,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
public function logout() {
|
||||
delete_cookie('rememberMe');
|
||||
delete_cookie('rememberToken');
|
||||
|
||||
$userID = $_SESSION['user']['ID'];
|
||||
$this->db->query('UPDATE users SET isCurrentlyOnline = false, rememberToken = null WHERE ID = ?', [$userID]);
|
||||
|
||||
unset($_SESSION['user']);
|
||||
$_SESSION['loggedOut'] = true;
|
||||
}
|
||||
|
||||
public function getLoginData($username)
|
||||
{
|
||||
$this->db->cache_off();
|
||||
|
@ -64,12 +53,6 @@
|
|||
return $passwordHash;
|
||||
}
|
||||
|
||||
private function generateRandomUserHash($username) {
|
||||
$base = uniqid();
|
||||
$seed = $username . date(time());
|
||||
return md5($base . $seed);
|
||||
}
|
||||
|
||||
public function startLoginSession($logindata, $rememberMe)
|
||||
{
|
||||
$this->reloadLoginSession($logindata);
|
||||
|
@ -91,19 +74,44 @@
|
|||
|
||||
public function reloadLoginSession($logindata)
|
||||
{
|
||||
$_SESSION['user']['displayname'] = $logindata['displayname'];
|
||||
$_SESSION['user']['username'] = $logindata['username'];
|
||||
$_SESSION['user']['rank'] = $logindata['rank'];
|
||||
$_SESSION['user']['ID'] = $logindata['ID'];
|
||||
$_SESSION['user']['ads'] = $logindata['showAds'];
|
||||
$profilePic = $logindata['profile_picture'];
|
||||
if (empty($profilePic)) {
|
||||
$_SESSION['user']['profilePic'] = '/assets/images/steam.jpg';
|
||||
} else {
|
||||
$_SESSION['user']['profilePic'] = $profilePic;
|
||||
list(
|
||||
'ID' => $id,
|
||||
'username' => $username,
|
||||
'displayname' => $displayname,
|
||||
'rank' => $rank,
|
||||
'showAds' => $ads,
|
||||
'profile_picture' => $avatar,
|
||||
) = $logindata;
|
||||
|
||||
$this->session->set_userdata('user', [
|
||||
'displayname' => $displayname,
|
||||
'username' => $username,
|
||||
'rank' => $rank,
|
||||
'ID' => $id,
|
||||
'ads' => $ads,
|
||||
'permissions' => $this->UserModel->getPermissions($id),
|
||||
'profilePic' => !empty($avatar) ? $avatar : '/assets/images/steam.jpg',
|
||||
]);
|
||||
}
|
||||
|
||||
$_SESSION['user']['permissions'] = $this->UserModel->getPermissions($logindata['ID']);
|
||||
private function generateRandomUserHash($username)
|
||||
{
|
||||
$base = uniqid();
|
||||
$seed = $username . date(time());
|
||||
return md5($base . $seed);
|
||||
}
|
||||
|
||||
public function logout()
|
||||
{
|
||||
echo 'wird aufgerufen?';
|
||||
delete_cookie('rememberMe');
|
||||
delete_cookie('rememberToken');
|
||||
|
||||
$userID = $_SESSION['user']['ID'];
|
||||
$this->db->query('UPDATE users SET isCurrentlyOnline = false, rememberToken = null WHERE ID = ?', [$userID]);
|
||||
|
||||
unset($_SESSION['user']);
|
||||
$_SESSION['loggedOut'] = true;
|
||||
}
|
||||
|
||||
public function isTrashMail($email)
|
||||
|
@ -161,7 +169,7 @@
|
|||
$result = $this->db->query('SELECT rememberToken FROM users WHERE ID = ?', [$logindata['ID']])->result_array();
|
||||
$token = $result[0]['rememberToken'];
|
||||
|
||||
if ($token !== null && sizeof($token) == 32 && $_COOKIE['rememberToken'] == $token) {
|
||||
if ($token !== null && strlen($token) == 32 && $_COOKIE['rememberToken'] == $token) {
|
||||
$this->startLoginSession($logindata, 'on');
|
||||
}
|
||||
}
|
||||
|
|
Reference in New Issue
Block a user