Drupal 7 Login: Passwort vergessen

veröffentlicht von gülmez am Mo., 10.10.2016 - 13:08

Wenn man eine Weiterleitung nach einem Login einrichtet sollte man folgende Tatsache nicht vergessen:

Der durch die "Passwort-Vergessen"- Funktion generierte One-Time-Login funktioniert dann nicht mehr.

Der Grund ist das man zunächst auf einer anderen Seite landet, sich dann wieder zum User-Profil durchklickt (der Hash dabei verloren geht) und man aufgefordert wird sein altes Passwort einzugeben um ein neues zu erstellen. Klar das sich dann der User ärgert und denkt: "Wie soll ich ein neues Passwort vergeben wenn ich mein altes vergessen habe?"

Lösung: Bei Einrichtung einer Weiterleitung muss im Code (oder einer Rule) abgefragt werden ob im aufgerufenen Pfad die Wortfolge „user/reset“ vorkommt. Wenn die Wortfolge NICHT vorkommt wird man an die gewünschte eingetragene URL weitergeleitet.

Für eine Rule könnte man folgendes anlegen:

{ "rules_login" : {
    "LABEL" : "Login",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "user_login" : [] },
    "IF" : [
      { "NOT text_matches" : { "text" : [ "site:current-page:path" ], "match" : "user\/reset" } }
    ],
    "DO" : [ { "redirect" : { "url" : "meine-ziel-url", "force" : "0" } } ]
  } }

Die Problematik hatte ich auch schon bei einigen Projekten :)

Das Ganze ist auch hier gut  beschrieben:

http://stackoverflow.com/questions/10965471/drupal-rules-one-time-login-redirect-issue

Neuen Kommentar hinzufügen