Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF2][SF]FOSUserBundle - właściwy kod od autoryzacji
Forum PHP.pl > Forum > PHP > Frameworki
wujek2009
Cześć.

Próbuje rozgryźć w jaki sposób działa autoryzacja (logowanie w "FOSUserBundle"). Kontroler SecurityController.php wykorzystuje w tym celu trzy akcje: loginAction, renderLogin, checkAction.

Akcja "loginAction" to właściwie przygotowanie to wyświetlenia formularza z użyciem renderLogin - nigdzie tutaj nie ma konkretów; szukam linijek, które przedstawią mi bezpośrednie działanie autoryzacji (tj: walidacja pól formularza, ewentualne zwrócenie błędów walidacji, sam proces logowania (poprawna, błędna autoryzacja).

Routing formularza (parametr "action" w formularzu) kieruje na akcje "checkAction" - choć wydaje mi się ona trochę bezużyteczna (?), ponieważ rzucamy od razu wyjątkiem. Mam skonfigurowany security.yml gdzie parametr "form_login" kieruje według ustawień:
Kod
    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
            logout:       true
            anonymous:    true



Jednak niewiele mi mówi samo hasło "provider" - więc tego kroku dalej nie zagłębiałem, więc jestem w kropce. Wydaje mi się, że cały ten moduł/vendor opiera się na eventach - i w przypadku wykrycia danej akcji (rejestracja, logowanie, zapomniałem hasła, itd). Folder EventListener posiada plik AuthenticationListener.php, który posiada akcje authenticate, ale nie mogę nigdzie w kontrolerach/plikach konfiguracynych znaleźć wywołania ani tego eventu.

Więc podsumowując:

1) Pliki konfiguracyjne, parametr "provider" - za co dokładnie odpowiada? Parametr, który określa jaka klasa, bundle będzie używana dla danego modułu (?) - w tym przypadku "form_login" ?

2) Najważniejsze: w którym momencie jest wywoływana akcja/funkcja authenticate z EventListenera?

pedro84
Do poczytania: http://symfony.com/doc/current/book/security.html. Tam naprawdę wszystko jest piękne opisane, w jaki sposób działa komponent Security. FOSUserBundle jest tylko interfejsem zarządzania użytkownikami (rejestracja, etc), za wszystko inne odpowiada ww. komponent.

Na to też warto rzucić okiem: http://symfony.com/doc/current/components/...y/firewall.html.
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.