Dołącz do społeczności Medpass
1. Wstęp
Medpass oparty jest o standard OpenID (dokumentacja: http://openid.net/)
Sugerowana (najprostsza w implementacji) biblioteka implementująca OpenID dla PHP: http://www.phpclasses.org/browse/package/3290.html
Na powyższej stronie znajdują się rownież szersze przykłady kodu.
2. Skrócony opis procesu logowania Medpass
Na stronie w formularzu użytkownik wpisuje swój login Medpass w formie skróconej tj. zamiast http://jkowalski.beta.medpass.pl wpisuje tylko jkowalski. Przed przesłaniem danych do serwera, login powinien być zamieniony na pełną postać akceptowaną przez serwer OpenID Medpass Formularz z odpowiednimi dodatkowymi polami zostaje przesłany na serwer Medpass. Tam odbywa się weryfikacja użytkownika (loginu i hasła konta Medpass). I następnie przeglądarka zostaje przekierowana na serwer z którego odbywało się logowanie z odpowiednim sygnałem dot. poprawności weryfikacji logowania.
3. Przykładowa implementacja logowania Medpass
Do tej dokumentacji załączone są przykłady kodu PHP opartego o Smarty dla wymienionej we wstępie biblioteki OpenID implementujące logowanie Medpass 2.0
Wszystkie biorące udział w procesie uwierzytelnienia klasy znajdują się w katalogu lib/medpass - jest to plik z biblioteką OpenID, biblioteka logowania do konta Medpass oraz jej plik konfiguracyjny.
3.1 Konfiguracja
Wszystkie niezbędne do poprawnego uruchomienia przykładu na dowolnym serwerze znajdują się w pliku lib/medpass/configure.AccountMedpass.php
3.2 Uwierzytelnienie - sesja
Po uwierzytelnieniu ustawiane są zmienne sesyjne, które pozwalają nam zweryfikować, czy dany użytkownik przeszedł logowanie poprawnie. Nazwy zmiennych sesyjnych przykładu można zmienić w pliku konfiguracyjnym. Medpass_SESSION_...
3.3 Logowanie
Formularz logwania ze wszystkimi wymaganymi do uwierzytelnienia polami znajduje się w pliku /templates/medpass_form.tpl
Proces uwierzytelnienia odbywa sie bezpośrednio w bezpiecznym
i hermetycznym ąrodowisku umieszczonym na serwerze Medpass, który
w przypadku sukcesu lub porażki zwraca odpowiedni komunikat do serwera
z którego odbywało sie logowanie. Na podstawie tego komunikatu możliwe jest
ustawienie odpowiednich zmiennych sesyjnych pozwalających użytkownikowi
na dostęp do miejsc, które tego wymagają.
Po poprawnym uwieżytelnieniu użytkownik jest przekierowany na stronę,
konfigurowaną w pliku konfiguracyjnym:
Medpass_RETURN_LOGIN - parametr ten domyślnie jest ustawiony na
adres tej samej strony z której zostało wysłane zadanie zalogowania.
3.4 Wylogowanie
Wylogowanie jest obsługiwane w tej samej metodzie, która sprawdza, czy
użytkownik jest zalogowany (isLogged w klasie AccountMedpass).
Po wymazaniu odpowiednich zmiennych sesyjnych użytkownik jest przekierowywany
na stronę, którą możemy ustawić w pliku konfiguracyjnym:
Medpass_RETURN_LOGOUT - domyślnie jest to ta sama, na której został kliknięty
przycisk wyloguj (parametry tego linku także są ustawiane w pliku
konfiguracyjnym - tj. możemy zmienić nazwę parametru, który jest przesyłany
przy zadaniu wylowania.
3.5 Obsługa błędów
Komunikaty błędów ustawiane są w zmiennej sesyjnej, której nazwa zdefiniowana
jest w pliku konfiguracyjnym w polu Medpass_ERROR.
Komunikaty Medpass_ERROR_... można także zmienić w pliku konfiguracyjnym.