first commit
This commit is contained in:
43
app/Utils/authHelper.php
Normal file
43
app/Utils/authHelper.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
namespace Blog\Utils;
|
||||
|
||||
use Blog\Model\userModel;
|
||||
use Exception;
|
||||
|
||||
class AuthHelper {
|
||||
private static ?UserModel $userModel = null;
|
||||
|
||||
public static function initialize(UserModel $userModel): void {
|
||||
self::$userModel = $userModel;
|
||||
}
|
||||
|
||||
public static function login(string $username, string $password): bool {
|
||||
if(!self::$userModel)
|
||||
throw new Exception("AuthHelper was not initialized. Please pass UserModel.");
|
||||
|
||||
$user = self::$userModel->getUserByUsername($username);
|
||||
if(!$user || !password_verify($password, $user->getPassword())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$_SESSION['user'] = [
|
||||
'id' => $user->getId(),
|
||||
'username' => $user->getUsername()
|
||||
];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function logout(): void {
|
||||
session_unset();
|
||||
session_destroy();
|
||||
}
|
||||
|
||||
public static function isLoggedIn(): bool {
|
||||
return isset($_SESSION['user']);
|
||||
}
|
||||
|
||||
public static function getCurrentUser(): ?array {
|
||||
return $_SESSION['user'] ?? null;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user