Download the PHP package nimblephp/authorization without Composer

On this page you can find all versions of the php package nimblephp/authorization. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package authorization

NimblePHP Authorization

Kompletna biblioteka autoryzacyjna dla frameworka NimblePHP z funkcjonalnościami:

Konfiguracja

Biblioteka obsługuje podstawową konfigurację poprzez zmienne środowiskowe.

Zmienne środowiskowe

Konfiguracja PHP

Instalacja

Bezpieczeństwo

Rate Limiting (Ochrona przed atakami brute-force)

Biblioteka zawiera wbudowaną ochronę przed atakami brute-force na logowanie. System Rate Limiting śledzi nieudane próby logowania i tymczasowo blokuje konto.

Konfiguracja Rate Limiting

Obsługiwanie excepcji Rate Limiting

Niestandardowe hashowanie haseł

Biblioteka pozwala na implementację własnego systemu hashowania haseł poprzez interfejs PasswordHasher. Domyślnie używa bezpiecznego systemu VersionedHasher, ale możesz łatwo zastąpić go swoją implementacją.

Dostępne implementacje

Biblioteka zawiera kilka gotowych implementacji:

  1. DefaultPasswordHasher - Domyślna implementacja używająca VersionedHasher (rekomendowana)

    • Automatycznie aktualizuje skróty haseł przy logowaniu
    • Obsługuje wiele wersji algorytmów hashowania
  2. BcryptPasswordHasher - Użycie PHP's native password_hash z algorytmem bcrypt

    • Bezpieczne, ale wolniejsze
    • Koszt: 12 (customizable)
  3. ArgonPasswordHasher - Użycie PHP's password_hash z algorytmem Argon2id

    • Najbardziej bezpieczne, oporne na ataki GPU
    • Pamięć: 65536 MB, Iteracje: 4
  4. CustomHasherExample - Szablon do implementacji własnego hashera

Implementacja niestandardowego hashera

Utwórz klasę implementującą interfejs PasswordHasher:

Konfiguracja niestandardowego hashera

Lub użyj jednej z gotowych implementacji:

Automatyczne aktualizowanie haseł

System domyślnie (z DefaultPasswordHasher) automatycznie aktualizuje hasła podczas logowania jeśli potrzebne. Umożliwia to bezproblemową migrację między algorytmami:

Dwuetapowa weryfikacja (2FA)

Biblioteka zawiera wbudowaną obsługę uwierzytelniania dwuetapowego (2FA/MFA). Obsługuje wiele metod weryfikacji:

Konfiguracja 2FA

Zarejestruj dostawców 2FA w Twojej aplikacji:

TOTP (Google Authenticator)

TOTP jest najbardziej bezpieczną i popularną metodą 2FA. Generuje kody QR, które użytkownik skanuje swoją aplikacją authenticatora.

Włączenie 2FA dla użytkownika:

Wyświetlanie QR kodu dla użytkownika:

Weryfikacja kodu TOTP podczas logowania:

Email 2FA

Email provider wysyła kody weryfikacyjne na adres email użytkownika.

Konfiguracja:

Wysłanie kodu weryfikacyjnego:

Wyłączenie 2FA

Kody odzyskania (Recovery Codes)

TOTP provider generuje kody odzyskania, które użytkownik może użyć jeśli utraci dostęp do swojego authenticatora:

Funkcjonalności

Atrybuty autoryzacji

Biblioteka oferuje elastyczny system kontroli dostępu za pomocą atrybutów PHP 8+.

Dostępne atrybuty

Konfiguracja domyślnej polityki autoryzacji

Możesz skonfigurować domyślną politykę autoryzacji dla całej aplikacji:

Przykłady użycia atrybutów

Opcja 1: Domyślnie autoryzacja NIE wymagana
Opcja 2: Domyślnie autoryzacja WYMAGANA

Middleware autoryzacji

Biblioteka dostarcza AuthorizationMiddleware który automatycznie sprawdza autoryzację na podstawie atrybutów i konfiguracji. Middleware należy zarejestrować w aplikacji NimblePHP.

Logika działania middleware:

  1. Jeśli jest atrybut #[NoAuth] → autoryzacja NIE jest wymagana
  2. Jeśli jest atrybut #[RequireAuth] → autoryzacja JEST wymagana
  3. Jeśli nie ma żadnego atrybutu → sprawdza konfigurację $requireAuthByDefault

Klasa Authorization

Główna klasa odpowiedzialna za zarządzanie sesjami użytkowników i proces autoryzacji.

Metody klasy Authorization

Klasa Account

Klasa odpowiedzialna za operacje bazodanowe na kontach użytkowników.

Metody klasy Account

Role-Based Access Control (RBAC)

Biblioteka oferuje kompletny system RBAC (Role-Based Access Control) umożliwiający precyzyjną kontrolę dostępu na podstawie ról i uprawnień.

Konfiguracja RBAC

Tabele bazy danych

Przed rozpoczęciem korzystania z RBAC należy użyć komendy CLI uruchamiającą migracje modułów:

Zmienne środowiskowe dla RBAC

Atrybuty RBAC

Dostępne atrybuty

Podstawowe atrybuty:

Zaawansowane atrybuty dla wielu sprawdzeń:

Przykład użycia atrybutów RBAC

Klasa Role

Zarządza rolami w systemie.

Metody klasy Role

Klasa Permission

Zarządza uprawnieniami w systemie.

Metody klasy Permission

Rozszerzone metody klasy Authorization

Metody sprawdzania ról i uprawnień

Metody zarządzania rolami

Rozszerzone metody klasy Account

Metody zarządzania rolami konta

Przykład użycia

Podstawowa konfiguracja

Rejestracja użytkownika

Autoryzacja przez username

Autoryzacja przez email

Logowanie użytkownika

Logowanie przez username lub email

Metoda login() automatycznie rozpoznaje typ autoryzacji na podstawie konfiguracji:

HTTP Basic Authentication

Biblioteka wspiera HTTP Basic Auth (RFC 7617) dla API i dostępu programistycznego:

Wysyłanie HTTP Basic Auth (z przeglądarki/curl):

W JavaScript/Fetch API:

Sprawdzanie statusu autoryzacji

Wylogowanie

Operacje na koncie

Konfigurowalne nazwy kolumn

Biblioteka pozwala na dostosowanie nazw kolumn w bazie danych:

Zarządzanie kontem

Aktywacja kont

Biblioteka obsługuje opcjonalną aktywację kont użytkowników. Gdy aktywacja jest włączona, nowo zarejestrowani użytkownicy nie mogą się zalogować dopóki ich konta nie zostaną aktywowane.

Konfiguracja aktywacji

Rejestracja z aktywacją

Gdy aktywacja jest włączona, nowo utworzone konta mają status active = 0:

Zarządzanie aktywacją kont

Logowanie z aktywacją

Gdy aktywacja jest włączona, tylko aktywne konta mogą się zalogować:

Wyłączenie aktywacji

Gdy aktywacja jest wyłączona, wszystkie konta są automatycznie traktowane jako aktywne:

Praca z RBAC

Tworzenie ról i uprawnień

Przypisywanie uprawnień do ról

Zarządzanie użytkownikami i rolami

Zaawansowane sprawdzenia dostępu

Pobieranie ról i uprawnień użytkownika

Użycie atrybutów w kontrolerach

Zarządzanie rolami przez API/admin panel

Walidacja danych

Biblioteka zawiera wbudowaną walidację:

Bezpieczeństwo

Struktura tabeli bazy danych

Biblioteka oczekuje tabel z następującymi kolumnami:

Główna tabela użytkowników:

Uwaga: Kolumna active jest wymagana jeśli chcesz używać funkcji aktywacji kont. Jeśli nie planujesz używać tej funkcji, kolumna może być pominięta lub zawsze ustawiona na 1.

Możesz dostosować nazwy kolumn poprzez konfigurację:

Wyjątki

Biblioteka może rzucać następujące wyjątki:

OAuth2 - Logowanie społeczne

Biblioteka wspiera logowanie za pośrednictwem OAuth2. Dostarczone są implementacje dla GitHub i przygotowana architektura do łatwego dodawania dodatkowych dostawców (Google, Facebook, itp.).

Konfiguracja GitHub OAuth2

1. Rejestracja aplikacji na GitHub

  1. Przejdź na https://github.com/settings/developers
  2. Kliknij "New OAuth App"
  3. Wypełnij formularz:
  4. Skopiuj Client ID i Client Secret

2. Konfiguracja w aplikacji

3. Inicjalizacja logowania OAuth

4. Obsługa callback'u

Dane otrzymane z OAuth2

Po pomyślnej autoryzacji otrzymujesz takie dane:

Dla GitHub OAuth2:

Tworzenie niestandardowego providera OAuth2

Aby dodać nowego dostawcę OAuth2, stwórz klasę implementującą OAuthProvider:

Następnie zarejestruj providera:

Bezpieczeństwo OAuth2

Token-Based Authentication

Biblioteka wspiera nowoczesne metody autoryzacji API oparte na tokenach.

JWT (JSON Web Tokens)

RFC 7519 standard dla stateless, bezpiecznych tokenów.

Konfiguracja

Generowanie tokenu

Walidacja tokenu

API Keys

Stacjonarne klucze API z loggingiem i rate limitingiem.

Konfiguracja

Generowanie klucza

Walidacja klucza

Zarządzanie kluczami

Rate Limiting

Dokumentacja


All versions of authorization with dependencies

PHP Build Version
Package Version
Requires php Version >=8.2
nimblephp/framework Version ^0.4.1
krzysztofzylka/hash Version ^2.0
nimblephp/migrations Version ^0.3.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package nimblephp/authorization contains the following files

Loading the files please wait ...