2.2 KiB
2.2 KiB
System Logowania 2FA
Prosta aplikacja demonstracyjna logowania dwuskładnikowego w PHP.
Wymagania
- PHP 7.4 lub nowszy
- SQLite3
- Serwer WWW (Apache/Nginx) lub wbudowany serwer PHP
Instalacja
- Skopiuj pliki na serwer WWW
- Upewnij się, że katalog
database/ma uprawnienia do zapisu - Przejdź do
/inicjalizacja(lubindex.php?action=init) aby zainicjalizować bazę danych - Zaloguj się używając testowego konta
Przyjazne URLe
Aplikacja wspiera przyjazne URLe (friendly URLs):
/lub/logowanie- ekran logowania/uwierzytelnianie- proces uwierzytelniania/weryfikacja- ekran weryfikacji 2FA/weryfikuj-kod- weryfikacja kodu/panellub/dashboard- panel użytkownika/wyloguj-sie- wylogowanie/inicjalizacja- inicjalizacja bazy danych
Stare URLe z parametrem ?action= nadal działają dla kompatybilności.
Dane testowe
- Login: projectpro
- Hasło: testowehaslo
Struktura projektu
projektphp/
├── controllers/ # Kontrolery MVC
│ ├── InitController.php
│ ├── LoginController.php
│ └── DashboardController.php
├── models/ # Modele danych
│ ├── Database.php
│ └── User.php
├── views/ # Widoki PHP
│ ├── layout.php
│ ├── login.php
│ ├── verify.php
│ └── dashboard.php
├── public/ # Publiczne zasoby
│ ├── css/
│ │ └── style.css
│ └── js/
│ └── app.js
├── database/ # Baza danych SQLite
│ └── database.db
├── .htaccess # Konfiguracja Apache
└── index.php # Punkt wejścia
Proces logowania
- Użytkownik wprowadza login i hasło
- System generuje 6-cyfrowy kod weryfikacyjny
- Kod wyświetlany jest w konsoli przeglądarki (tryb testowy)
- Po wprowadzeniu prawidłowego kodu użytkownik jest zalogowany
- Kod wygasa po 15 minutach
Uwagi
- W trybie testowym kod weryfikacyjny jest wyświetlany w konsoli przeglądarki (F12)
- W produkcji kod powinien być wysyłany emailem
- Hasła są hashowane przy użyciu
password_hash() - Sesje są bezpiecznie zarządzane