Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Autoryzacja
Forum PHP.pl > Forum > PHP > Object-oriented programming
wlamywacz
Witam smile.gif

Jestem w trakcie pisania swojego coś w stylu frameworka. W większości aplikacji www często zachodzi potrzeba autoryzacja użytkowników na podstawie różnych parametrów. Zastanawiam się jak powinienem wyglądać uniwersalny moduł autoryzacja w takim systemie ? Tworzyć zawsze jedną stałą tabele np. users która ma wymagane pola: login, password, auth i relation. Jak wy to rozwiązujecie ?
wrzasq
Model logowania mam zrobiony w prostu sposób:

Kod
bool login($login, $password);

Loguje użytkownika o podanym loginie i zwraca efekt operacji (wtedy można te dane również odpowiednio zapisać w sesji/ciasteczkach).

Kod
void logout();

Wiadomo.

Kod
bool isLogged();

Sprawdza, czy obiekt reprezentuje zalogowanego użytkownika.

Kod
bool hasAccess(AccessLevel $access);

Sprawdza uprawnienia.

Kod
int getLoggedID();

ID zalogowanego użytkownika (rzuca wyjątkiem, gdy użytkownik nie jest zalogowany).

A to, jak on jest reprezentowany w bazie danych, czy przez jedną, dwie, czy sto tabel, można łatwo zmienić w implementacji. Jeśli chodzi o mnie zazwyczaj stosuję users -> groups -> masks (AccessLevel to klasa trzymająca reguły dostępu, zazwyczaj po prostu lista wymaganych masek). Używałem tego schematu w przeróżnych przypadkach i sprawdza się.

Zazwyczaj implementuje go w klasie użytkownika tak, że jest od razu reprezentowany przez użytkownika w bazie danych, ale w razie potrzeby nie ma przeszkód wyodrębnienia tego mechanizmu do osobnej klasy, jeśli nasz model przechowywania danych nie spina tych wszystkich danych i nie pokrywa się.
qba_rox
spojrz jak jest zrobione to w zend framework: komponent zend_auth. tam wszystko ladnie jest rozplanowane smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.