2017-02-21 6 views
0

Ich versuche, Passwort-Wiederherstellung mit FOSUser.Mostly funktioniert alles gut für mich bis zu dem Moment, wenn ich versuche, auf die Reset-Passwort-Seite gehen.Passwort-Wiederherstellung mit FOS User Bundle

Ich habe auf meine E-Mail-Link wie folgt bekommen:

http://localhost/yaaholidays/web/app_dev.php/en/resetting/reset/RYPuGNDgSel85v1Kcj3lrIqPRhuYt5inh3VQAOlRPgk

aber wenn ich auf sie gehen versuchen, FOS umleiten mich auf

/Zurücksetzen/Anfrage Pfad

Das ist was ich haben in meiner Protokolldatei:

[2017.02.21 13.22.18] request.INFO: Matched Route "fos_user_resetting_reset". {"route": "fos_user_resetting_reset", "route_parameters": {"_controller": "FOS \ UserBundle \ Controller \ ResettingController :: resetAction", "_ locale": "de", "token": "RYPuGNDgSel85v1Kcj3lrIqPRhuYt5inh3VQAOlRPgk", "_ route ":" fos_user_resetting_reset "}," REQUEST_URI ":" http://localhost/yaaholidays/web/app_dev.php/en/resetting/reset/RYPuGNDgSel85v1Kcj3lrIqPRhuYt5inh3VQAOlRPgk“, "Verfahren": "GET" } []

[2017.02.21 13.22.18] security.INFO: Belegt die TokenStorage mit ein anonymer Token. [] []

[2017.02.21 13.22.18] doctrine.DEBUG: AS USERNAME_1, t0.username_canonical AS username_canonical_2 SELECT t0.username, t0.email AS EMAIL_3, t0.email_canonical AS email_canonical_4 , t0.enabled AS enabled_5, t0.salt salt_6 AS, AS t0.password password_7, t0.last_login last_login_8 AS, AS t0.confirmation_token confirmation_token_9, t0.password_requested_at password_requested_at_10 AS, AS t0.roles roles_11, t0.id AS id_12, t0.salutation AS anrede_13, t0.first_name AS first_name_14, t0.name AS name_15, t0.phone_number AS phone_number_16, t0.profile_bild AS profile_pictur e_17, t0.languages ​​AS Sprachen_18, t0.Adresse AS Adresse_19, t0.agency AS Agentur_20 FROM fos_user t0 WHERE t0.confirmation_token =? LIMIT 1 [ "RYPuGNDgSel85v1Kcj3lrIqPRh [...]"] []

[2017.02.21 13.22.18] request.INFO: Matched Route "fos_user_resetting_request". {"route": "fos_user_resetting_request", "route_parameters": {"_ controller": "FOS \ BenutzerBundle \ Controller \ ResettingController :: requestAction", "_ locale": "de", "_ route": "fos_user_resetting_request"}, " request_uri ":" http://localhost/yaaholidays/web/app_dev.php/en/resetting/request“, "Methode": "GET"} []

[2017.02.21 13.22.18] security.INFO: Belegt die TokenStorage mit ein anonymer Token. [] []

[2017-02-21 13:22:18] Übersetzung.WARNUNG: Übersetzung nicht gefunden. {"id": "Telefon", "domain": "nachrichten", "locale": "de"} []

[2017-02-21 13:22:19] anfrage.INFO: Passende Route "_wdt". {"route": "_ wdt", "route_parameter": {"_ controller": "web_profiler.controller.Profiler: toolbarAction "," token ":" 6f0aa9 "," _ route ":" _ wdt "," _ locale ":" en "}," request_uri ":" http://localhost/yaaholidays/web/app_dev.php/_wdt/6f0aa9 "," Methode ":" GET "} []

weiß jemand, warum mich FOS Umleitungen auf Seite der Anfrage Passwort-Wiederherstellung statt neues Passwort setzen Seite?

Antwort

3

Durch Ihre Protokolle zu lesen, so scheint es, dass das Passwort Reset-Anforderung abgelaufen ist. ist Ihr Link? abgelaufen

In der Steuerung FOS \ UserBundle \ Controller \ ResettingController wird das Ereignis RESETTING_RESET_INITIALIZE unmittelbar nach dem Abrufen des Benutzers von token hinzugefügt, und dann wird der Listener ResettingListener aufgerufen n diese Zuhörer, wobei das Verfahren onResettingResetInitialize prüft, ob die Passwortabfrage (das RESETTING_RESET_INITIALIZE Ereignis verwalten) abgelaufen ist und zu routen fos_user_resetting_request umleiten, wenn er:

/** 
* @param GetResponseUserEvent $event 
*/ 
public function onResettingResetInitialize(GetResponseUserEvent $event) 
{ 
    if (!$event->getUser()->isPasswordRequestNonExpired($this->tokenTtl)) { 
     $event->setResponse(new RedirectResponse($this->router->generate('fos_user_resetting_request'))); 
    } 
} 

Wenn Sie haben gerade die E-Mail-Passwort und den Link zum Zurücksetzen ist noch nicht abgelaufen, überprüfe deine fosuser Konfiguration in config.xml.

Wenn Sie so etwas wie dieses:

fos_user: 
    resetting: 
    token_ttl: 0 

Dann wird Ihr Token ttl nie gültig sein. In diesem Fall ändern Sie beispielsweise das Token ttl auf 86400 (1 Tag).

+0

vielen Dank, dies erklären viele Dinge :) Wird nach Lösung suchen mit Ihrer Antwort –

Verwandte Themen