84 lines
1.5 KiB
PHP
84 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* app/lib/auth.php
|
|
*
|
|
* Single-User-Authentifizierung
|
|
* - Login / Logout
|
|
* - Session-Check
|
|
* - Optional: Passwortschutz für Admin-Tool
|
|
*
|
|
* KEIN Mehrbenutzer-System
|
|
*/
|
|
|
|
/* =========================
|
|
* Login prüfen
|
|
* ========================= */
|
|
|
|
/**
|
|
* Prüft, ob der Benutzer eingeloggt ist
|
|
*
|
|
* @return bool
|
|
*/
|
|
function isAuthenticated(): bool
|
|
{
|
|
// TODO: Session-Variable definieren, z.B. $_SESSION['auth'] === true
|
|
return isset($_SESSION['auth']) && $_SESSION['auth'] === true;
|
|
}
|
|
|
|
/* =========================
|
|
* Login durchführen
|
|
* ========================= */
|
|
|
|
/**
|
|
* Führt einen Login durch
|
|
*
|
|
* @param string $password
|
|
* @return bool
|
|
*/
|
|
function login(string $password): bool
|
|
{
|
|
// TODO: Passwort aus config.php vergleichen
|
|
// TODO: Passwort-Hash verwenden (password_hash / password_verify)
|
|
|
|
/*
|
|
if (password_verify($password, ADMIN_PASSWORD_HASH)) {
|
|
$_SESSION['auth'] = true;
|
|
return true;
|
|
}
|
|
*/
|
|
|
|
return false;
|
|
}
|
|
|
|
/* =========================
|
|
* Logout
|
|
* ========================= */
|
|
|
|
/**
|
|
* Loggt den Benutzer aus
|
|
*/
|
|
function logout(): void
|
|
{
|
|
// TODO: Session-Variablen löschen
|
|
// unset($_SESSION['auth']);
|
|
|
|
// TODO: Optional komplette Session zerstören
|
|
// session_destroy();
|
|
}
|
|
|
|
/* =========================
|
|
* Zugriff erzwingen
|
|
* ========================= */
|
|
|
|
/**
|
|
* Erzwingt Login, sonst Redirect
|
|
*/
|
|
function requireAuth(): void
|
|
{
|
|
if (!isAuthenticated()) {
|
|
// TODO: Redirect auf Login-Seite
|
|
// header('Location: /login.php');
|
|
exit;
|
|
}
|
|
}
|