2016-03-23 5 views
0

Ich verwende Symfony v2.6.13 und FOSUserBundle.FOSUserBundle E-Mail-Reset-Link verweist nicht auf die richtige Seite

Ich verwende FOSUserBundle, um die Benutzerauthentifizierung für mein Projekt zu implementieren. Ich benutze meine eigenen Vorlagen (Zweige), um login/register/reset Passwort etc. anzuzeigen, indem ich ihre Vorlagen überschreibe (d. H. Die gleichen Dateinamen in meinen Ordner Project/app/Resources/FOSUserBundle/views platziere). Wie hier dokumentiert: https://symfony.com/doc/master/bundles/FOSUserBundle/overriding_templates.html

Das Problem, mit dem ich konfrontiert bin, ist der Link, den ich per E-Mail erhalten, um mein Passwort zurückzusetzen, bringt mich zurück auf die gleiche Seite wie ich war der Bildschirm, um meine E-Mail/Benutzername einzugeben. Der generierte Link in der E-Mail sollte mich zu einem Bildschirm bringen, der zwei Textfelder enthält, damit ich mein Passwort ändern kann, aber ich sehe diese Seite nie.

Ich habe keine Ideen, warum das passiert.

http://127.0.0.1:8000/resetting/reset/59wonV9cK7UPR122rhNZQAXMJwoXUz7dt23_O-a4aJ4

(Anmerkung: Prüfung auf dem lokalen Rechner)

config.yml

fos_user: 
    db_driver: mongodb # other valid values are 'orm' mongodb', 'couchdb' and 'propel' 
    firewall_name: main 
    user_class: AppBundle\Document\User 
    registration: 
     form: 
      # using this because I am running Symfony 2.6 
      type: app_user_registration 
    resetting: 
     token_ttl: 0 # no restrictions on resetting password 
     email: 
      from_email: 
       address:  [email protected] 
       sender_name: SenderName 
    service: 
     #default implementation, and uses Swiftmailer to send emails. 
     mailer: fos_user.mailer.default 

So in der E-Mail wird es einen Link zum Zurücksetzen wie diese erzeugt.

Wenn ich den Link klicken, um es mir zu nehmen:

http://127.0.0.1:8000/resetting/reset 

, die anschließend auf dem Bildschirm ist, dass die Möglichkeit gibt mir nur meinen Benutzernamen oder E-Mail zum Zurücksetzen des Passworts einzugeben (dh der gleiche Bildschirm geschleift) .

Jede Hilfe würde sehr geschätzt werden.

Edit:

ich die Routen von FOSUserBundle und Anmerkungen für meine eigenen Wege geliefert bin mit.

app/config/routing.yml:

app_website: 
    resource: "@AppBundle/Resources/config/routing.yml" 
    prefix: /
app: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 
fos_user: 
    resource: "@FOSUserBundle/Resources/config/routing/all.xml" 

Und wenn meine Routen ($ php app/console Route: debug) Prüfen, sie sind alle Standard von FOSUserBundle:

fos_user_security_login   GET|POST ANY ANY /login        
fos_user_security_check   POST  ANY ANY /login_check      
fos_user_security_logout   GET  ANY ANY /logout       
fos_user_profile_show    GET  ANY ANY /profile/       
fos_user_profile_edit    GET|POST ANY ANY /profile/edit      
fos_user_registration_register GET|POST ANY ANY /register/       
fos_user_registration_check_email GET  ANY ANY /register/check-email    
fos_user_registration_confirm  GET  ANY ANY /register/confirm/{token}   
fos_user_registration_confirmed GET  ANY ANY /register/confirmed    
fos_user_resetting_request  GET  ANY ANY /resetting/request     
fos_user_resetting_send_email  POST  ANY ANY /resetting/send-email    
fos_user_resetting_check_email GET  ANY ANY /resetting/check-email    
fos_user_resetting_reset   GET|POST ANY ANY /resetting/reset/{token}   
fos_user_change_password   GET|POST ANY ANY /profile/change-password 
+0

Können Sie die routing.yml für Ihre Login/Reset-Routen anzeigen. – Twifty

+0

Ich benutze die Routen von FOSUserBundle und Anmerkungen für meine eigenen Routen. app/config/routing.yml: 'app_website: Ressource: "@ AppBundle/Ressourcen/config/routing.yml" prefix:/ App: Ressource: "@ AppBundle/Controller /" Typ: Anmerkung fos_user: Ressource: "@ FOSUserBundle/Ressourcen/config/routing/all.xml "' Sorry schwer zu lesen, habe ich meinen ursprünglichen Beitrag @Twifty bearbeitet – Brendan

Antwort

2

Die Frage Wenn token_ttl auf 0 gesetzt war, bedeutete dies, dass das Token sofort abgelaufen war, sodass der Benutzer sein Passwort nie zurücksetzen konnte. Ich habe dies zunächst auf 0 gesetzt, um das "Nur einmal alle 24 Stunden zurücksetzen" mit FOSUserBundle zu umgehen, was jedoch falsch war.

Das Entfernen dieser Zeile behebt mein Problem.

Verwandte Themen