mirror of
https://github.com/standardebooks/web.git
synced 2025-07-06 06:40:33 -04:00
Log user in automatically if a request with HTTP auth is received
This commit is contained in:
parent
216e63f014
commit
c457af896c
6 changed files with 25 additions and 10 deletions
|
@ -48,17 +48,18 @@ class Session extends PropertiesBase{
|
|||
$this->Created = new DateTime();
|
||||
Db::Query('INSERT into Sessions (UserId, SessionId, Created) values (?, ?, ?)', [$this->UserId, $this->SessionId, $this->Created]);
|
||||
}
|
||||
|
||||
$this->SetSessionCookie($this->SessionId);
|
||||
}
|
||||
|
||||
public static function GetLoggedInUser(): ?User{
|
||||
$sessionId = HttpInput::Str(COOKIE, 'sessionid');
|
||||
|
||||
if($sessionId !== null){
|
||||
$result = Db::Query('select u.* from Users u inner join Sessions s using (UserId) where s.SessionId = ?', [$sessionId], 'User');
|
||||
$result = Db::Query('SELECT u.* from Users u inner join Sessions s using (UserId) where s.SessionId = ?', [$sessionId], 'User');
|
||||
|
||||
if(sizeof($result) > 0){
|
||||
// Refresh the login cookie for another 2 weeks
|
||||
setcookie('sessionid', $sessionId, time() + 60 * 60 * 24 * 14 * 1, '/', SITE_DOMAIN, true, false); // Expires in two weeks
|
||||
self::SetSessionCookie($sessionId);
|
||||
return $result[0];
|
||||
}
|
||||
}
|
||||
|
@ -66,6 +67,10 @@ class Session extends PropertiesBase{
|
|||
return null;
|
||||
}
|
||||
|
||||
public static function SetSessionCookie($sessionId): void{
|
||||
setcookie('sessionid', $sessionId, time() + 60 * 60 * 24 * 14 * 1, '/', SITE_DOMAIN, true, false); // Expires in two weeks
|
||||
}
|
||||
|
||||
public static function Get(?string $sessionId): Session{
|
||||
if($sessionId === null){
|
||||
throw new Exceptions\InvalidSessionException();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue