Files
testprojekt/rss/php/classes/application/user/Auth.php

63 lines
1.7 KiB
PHP
Raw Normal View History

2026-04-06 16:49:17 -04:00
<?php
namespace Vor\application\user;
use Vor\core\Sys;
use Vor\core\Main;
use Exception;
class Auth{
public $username;
public $email;
public $password;
public static function isAuth(){
$authData = $_SERVER['VOR_AUTH'] ?? false;
if(!$authData){
return false;
}
return (int)Sys::session('uid') === (int)$authData['uid'];
}
public function login(){
if(isset($this->email) && isset($this->password)){
$userData = Main::select('users', ['email', 'username', 'password', 'id'], ['email' => trim($this->email)]);
if(!$userData){
return false;
}
if(password_verify($this->password, $userData['password'])){
$sid = bin2hex(random_bytes(16));
$payload = [
'uid' => (int)$userData['id'],
'sid' => $sid,
'exp' => time() + 86400
];
if(Sys::cookieSet('v_auth', $payload)){
Sys::validateSession($sid);
Sys::session('uid', (int)$userData['id']);
Sys::session('logged_in_at', time());
return true;
}
}
}
return false;
}
public function logout(){
Sys::cookieClear('v_auth');
if(session_status() === PHP_SESSION_ACTIVE){
session_unset();
session_destroy();
}
return true;
}
}
?>