Symfony2 - logowanie na dowolnego użytkownika

Symfony2 - logowanie na dowolnego użytkownika
W0
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć,

Mam stronę napisaną w symfony2 i potrzebuję zrobić, aby administrator miał możliwość zalogowania się na konto dowolnego użytkownika.

Mam dwa pomysły jak to zrobić:

  1. Po zalogowaniu na konto administratora wyświetla się lista użytkowników i przy każdym przycisk zaloguj. Wtedy automatycznie zostajemy zalogowani na to konto.

  2. Wydaje mi się, że szybsze i łatwiejsze w implementacji. W formularzu logowania podajemy login użytkownika + hasło, które zna tylko administrator i po tym haśle system wie, że logujemy się jako administrator na czyjeś konto.
    Normalnie użytkownik podaje login+hasło, a admin może podać login_użytkownika+hasło_do_każdego_konta

Które rozwiązanie jest lepsze? Pewnie ze względów bezpieczeństwa pierwsze rozwiązanie?
Ogólnie można coś takiego zrobić w Symfony2, aby zalogowało mnie na dowolnego użytkownika znając tylko login jeśli korzystam z wbudowanego mechanizmu Autentykacji?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

Ze względów bezpieczeństwa żadne.
Po co w ogóle taka funkcja?

GU
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wroclaw
  • Postów: 172
1

Można to zrobić używając wbudowanego mechanizmu:

http://symfony.com/doc/current/cookbook/security/impersonating_user.html

Wystarczy, że twój admin ma tez ROLE_ALLOWED_TO_SWITCH.

Twoje logowanie na użytkownika to stworzenie przycisku z parametrem _switch_user=username, wylogowanie się to przycisk z parametrem _switch_user=_exit

kchteam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tychy
  • Postów: 155
0

Jeżeli używasz FOSUserBundle (jeśli nie, to polecam :)), to w poniższym wątku masz odpowiedź na podobne pytanie:

http://4programmers.net/Forum/PHP/245747-symfony2_ustawienie_sesji

[Mirek]

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.