Files
netwatch/app/lib/auth.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;
}
}