Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Phiend: Autoryzacja użytkownika

Sterowniki uwierzytelniające

Mimo, że Phiend wymaga dostępu do nazw użytkownika, jak też do haseł, jednak nie zapamiętuje ich. Dzieje się tak w celu zwiększania elastyczności. Jeśli środki dostępu do pamięci użytkownika (na przykład bazy danych) byłyby na stałe zapisane w kodzie Phiend'a, nie miałbyś swobody wyboru. Co więcej, może się zdarzyć, że informacje użytkownika są przechowywane w kilku miejscach i łączenie ich tylko dlatego, że wymaga tego twoja aplikacja internetowa, nie jest zbyt wygodne.

Aby połączyć się z pamięcią użytkownika i wydobyć z niej informacje o konkretnym użytkowniku, Phiend stosuje tzw. "sterowniki uwierzytelniające". Pomiędzy tymi programami a Phiend'em istnieje precyzyjnie określony główny interfejs. Programy można z łatwością konfigurować (na przykład z adresem bazy danych, z którymi mają się połączyć) w głównym pliku konfiguracyjnym. Następnie Phiend po prostu szuka pliku zawierającego potrzebny program i wywołuje tylko i wyłącznie tę funkcję, która jest niezbędna.

<?php

class VerySimpleAuthDriver {

 function VerySimpleAuthDriver($params) {
 if (isset($params['userName'])) {
 $this->_userName = $params['userName'];
 } else {
 $this->_userName = 'foo';
 }
 }

 function getRoles($userName, $password) {
 if (strcmp($userName, $this->_userName) == 0) {
 if (is_null($password) || strcmp($password, 'bar') == 0)) {
 return 'super-administrator important-user';
 } else {
 return _PHIEND_AUTH_BAD_PASSWORD;
 }
 } else {
 return _PHIEND_AUTH_NO_USER;
 }
 }
 
 var $_userName;
}

?>

Rezultaty zwrócone przez program uwierzytelniający są dostępne dla twoich akcji, jako "właściwość". Jeśli uwierzytelnienie nie nastąpiło, możesz sprawdzić tę właściwość i wyświetlić użytkownikowi wiadomość, wyjaśniając powód.

Jedna aplikacja może jednocześnie używać kilku programów uwierzytelniających. Jeśli więcej niż jeden taki program jest określony w pliku konfiguracyjnym, są one pytane w kolejności, w jakiej zostały tam umieszczone. Jeśli jednemu programowi udaje się uwierzytelnić użytkownika, programy późniejsze już nie są pytane. Jeśli jeden z programów nie spełnia wierzytelności użytkownika (z jakiegokolwiek powodu), pytany jest następny program w kolejności. Tylko jeśli żaden z programów nie spełnia wierzytelności, rezultatem jest błąd.

Phiend wyposażony jest w kilka sterowników uwierzytelnia przyjmowanych domyślnie. Nie są one w żaden sposób wyjątkowe. Ich obecność zwalnia cię po prostu z konieczności pisania własnych. Sterowniki dołączone do Phiend'a, znajdują się w jego katalogu. Twoje własne sterowniki powinny być umieszczone wewnątrz głównego podkatalogu twojego głównego katalogu kodu. Ponieważ nie ma właściwie żadnej różnicy pomiędzy tymi dwoma sterownikami, Phiend musi otrzymać polecenie, gdzie ma szukać któregoś z nich. Jest to możliwe dzięki opcji user-supplied zawartej w pliku konfiguracyjnym (każdy sterownik osobno).

Sterownik uwierzytelnienia musi być klasą. Musi mieć konstruktora i jedną metodę (mogą istnieć również inne metody i zmienne, ale metoda wywołana przez Phiend'a MUSI istnieć).

Konstruktor

Oto składnia konstruktora:

Argument $params jest tablicą asocjacyjną parametrów określonych w pliku konfiguracyjnym. Jeśli parametry nie są wyznaczone, klucze tablicy będą nazwami parametrów.

Metoda uwierzytelnienia

Składnia wymaganej metody to:

Znaczenie argumentów jest następujące:

Nazwa użytkownika- użytkownika, który ma być uwierzytelniony, zawsze obecna.

Hasło użytkownika, który ma być uwierzytelniony. Może to być null, kiedy tożsamość użytkownika jest sprawdzana dopiero po jego zalogowaniu się, a jego hasło nie jest już dostępne dla Phiend'a. Sterownik uwierzytelnia powinien być w stanie wyszukać użytkownika bazując na jego nazwie.

Wartość wrócona funkcji powinna być:

ciągiem zawierającym role użytkownika

Jeśli użytkownik został z powodzeniem uwierzytelniony, jego role powinny zostać zwrócone. To oznacza, że nazwa użytkownika oraz hasło (jeśli zostało podane) są ważne (aktualne).

Stała określona przez Phiend. Wskazuje, że nazwa użytkownika nie odpowiada (nie zgadza się z) żadnemu aktualnemu użytkownikowi.

Stała określona przez Phiend. Wskazuje, że pojawił się jakiś nieokreślony błąd - na przykład, sterownik nie był w stanie połączyć się z bazą danych.

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (0)
Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2024 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System