2026-01-29 21:08:01 +01:00
2026-01-29 21:08:01 +01:00
2026-01-29 21:08:01 +01:00
2026-01-29 21:08:01 +01:00
2026-01-29 21:08:01 +01:00
2026-01-29 21:08:01 +01:00
2026-01-29 21:08:01 +01:00
2026-01-29 21:08:01 +01:00
2026-01-29 21:08:01 +01:00
2026-01-29 21:08:01 +01:00

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

  1. Skopiuj pliki na serwer WWW
  2. Upewnij się, że katalog database/ ma uprawnienia do zapisu
  3. Przejdź do /inicjalizacja (lub index.php?action=init) aby zainicjalizować bazę danych
  4. 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
  • /panel lub /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

  1. Użytkownik wprowadza login i hasło
  2. System generuje 6-cyfrowy kod weryfikacyjny
  3. Kod wyświetlany jest w konsoli przeglądarki (tryb testowy)
  4. Po wprowadzeniu prawidłowego kodu użytkownik jest zalogowany
  5. 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
Description
No description provided
Readme 52 KiB
Languages
PHP 90.8%
CSS 7%
JavaScript 2.2%