Passwortvergessen Funktion

Jedes System benötigt eine Funktion um ein Passwort wieder zurückzusetzen, wenn dies nicht händisch in der Datenbank geschehen soll

Beispiele für Passwort vergessen Funktionen



Ab webEdition 6.3.9 gibt es die Möglichkeit Kundenpasswörter in der webEdition Kundenverwaltung durch webEdition verschlüsseln zu lassen. Um Kunden das Zurücksetzen von Passwörtern zu ermöglichen, wurden zusätzlich die folgenden neuen webEdition Tags entwickelt:
<we:customerResetPassword/>
<we:customerResetPasswordLink/>
<we:ifCustomerResetPassword/> und <we:ifNotCustomerResetPassword/>

Passwort direkt ohne E-Mail neu setzen (zurück setzen)



Der Kunde hat sein Passwort vergessen und darf für sich direkt auf der Website ein neues Passwort vergeben.

Template zum Passwort ändern

<we:ifNotWebEdition>
<we:comment>required verlangt bei type='direct' mind. zwei Felder der Kundenverwaltung</we:comment>
<we:ifVar type="post" name="requestPwd" match="1" comment="wird vom Button gesetzt">
<we:customerResetPassword type="direct" required="Username,Kontakt_Geburtstag,Kontakt_PLZ" loadFields="Anrede_Anrede,Forename,Surname,Username"/>
<we:ifNotCustomerResetPassword>
<h2>Passwortänderung fehlgeschlagen</h2>
<we:ifNotCustomerResetPassword type="passwordMismatch">Passwörter stimmen nicht überein</we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="required">Sie haben nicht alle Felder korrekt ausgefüllt.</we:ifNotCustomerResetPassword>
<we:else/>
<we:setVar to="global" nameto="disablePasswordResetForm" value="1" comment="steuert, ob das Formular angezeigt wird oder nicht"/>
<h2>Passwort erfolgreich geändert</h2>
<we:sessionField type="print" name="Anrede_Anrede"/> <we:sessionField type="print" name="Surname"/>,<br/><br/>
Sie können sich nun mit dem neuen Passwort und Ihrem Benutzernamen "<we:sessionField type="print" name="Username"/>" <we:a id="123">anmelden</we:a><br/>
</we:ifNotCustomerResetPassword>
</we:ifVar>

 

<we:ifVarEmpty type="global" match="disablePasswordResetForm">
<we:form id="self" method="post">
<label for="Username">Benutzername</label>
<we:sessionField type="textinput" name="Username" id="Username"/>
<label for="Kontakt_Geburtstag">Geburtsdatum</label>
<we:sessionField type="date" name="Kontakt_Geburtstag" id="Kontakt_Geburtstag" dateformat="d.M.Y"/>
<label for="Kontakt_PLZ">PLZ</label>
<we:sessionField type="textinput" name="Kontakt_PLZ" id="Kontakt_PLZ"/>
<label for="Password">Neues Passwort</label>
<we:sessionField type="password" name="Password" id="Password"/>
<label for="Password2">Passwort wiederholen</label>
<we:sessionField type="password" name="Password2" id="Password2" comment="es ist wichtig, dass dieses Feld 'Password2' heisst"/>

<button type="submit" name="requestPwd" value="1">Passwort ändern</button>
</we:form>
</we:ifVarEmpty>
</we:ifNotWebEdition>

 

Passwort neu setzen und per E-Mail aktivieren



Der Kunde hat sein Passwort vergessen und darf für sich direkt auf der Website ein neues Passwort vergeben. Anschließend erhält er eine E-Mail mit einem Aktivierungslink, der er erst klicken muss, um das neue Passwort in der Kundenverwaltung zu aktivieren.
<box 100% round blue>
Template zum direkten Ändern des Passwortes mit Aktivierungsmail

 

<we:ifVarNotEmpty type="request" match="token">
<we:ifVarNotEmpty type="request" match="user">
<we:comment>Mail-Link wurde angeklickt</we:comment>
<we:customerResetPassword type="resetFromMail" loadFields="Forename,Surname,Username"/>
<we:ifNotCustomerResetPassword>
Fehler beim zurücksetzen.
<we:ifNotCustomerResetPassword type="token">
Das Token ist ungültig oder zu alt
</we:ifNotCustomerResetPassword>
<we:else/>
Passwort zurückgesetzt.
</we:ifNotCustomerResetPassword>
</we:ifVarNotEmpty>
<we:else comment="es wurde noch keine confirmation email versandt"/>
<we:ifVar type="post" name="requestPwd" match="1" comment="wird vom Button gesetzt">
<we:customerResetPassword type="emailPassword" required="Username" customerEmailField="Kontakt_Email" loadFields="Forename,Surname,Username"/>
<we:ifNotCustomerResetPassword>
Es ist ein Fehler aufgetreten:
<we:ifNotCustomerResetPassword type="required">
Sie haben nicht alle erforderlichen Felder ausgefüllt.
</we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="passwordMismatch">
Die Passwörter stimmen nicht überein.
</we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="passwordRule">
Das verwendete Passwort entspricht nicht den Passwortrichtlinien.
</we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="userNotExists">
Der Benutzer existiert bei uns nicht.
</we:ifNotCustomerResetPassword>
<we:else comment="Username wurde angegeben und in der KV gefunden, jetzt versenden wir eine E-Mail"/>
<we:setVar to="global" nameto="disableForm" value="1"/>
<we:sessionField type="print" name="Kontakt_Email" to="global" nameto="recipientEmail"/>
<we:sendMail id="407" subject="Neues Passwort bestätigen" from="info@test.de" recipient="\$recipientEmail" comment="id enthaelt die ID des webEdition Dokuments, welches auf der nachfolgenden Vorlage basiert, recipient ist das KV-Feld das die Mail-Adresse enthält"/>
Sie erhalten in Kürze eine Mail mit einem Link. Bitte bestätigen Sie darin das Sie das Passwort ändern möchten.
</we:ifNotCustomerResetPassword>
</we:ifVar>
</we:ifVarNotEmpty>

 

<we:ifVarEmpty type="global" match="disableForm">
<we:form id="self" method="post">
<input type="hidden" name="notfirst" value="true"/>
<label for="Username">Benutzername</label>
<we:sessionField type="textinput" name="Username" id="Username" placeholder="Benutzername"/>
<label for="Email">E-Mail-Adresse</label>
<we:sessionField type="textinput" name="Kontakt_Email" id="Email" placeholder="E-Mail-Adresse"/>
<label for="Password">Passwort</label>
<we:sessionField type="password" name="Password" id="Password" placeholder="Neues Passwort"/><br/><br/>
<label for="Password2">Passwort wiederholen</label>
<we:sessionField type="password" name="Password2" id="Password2" placeholder="Passwort wiederholen" comment="es ist wichtig, dass dieses Feld 'Password2' heisst"/>
<button type="submit" name="requestPwd" value="1">Passwort zurücksetzen</button>
</we:form>
</we:ifVarEmpty>

 

E-Mail-Template mit Bestätigungs-Link

Sehr geehrte/r <we:sessionField type="print" name="Forename"/> <we:sessionField type="print" name="Surname"/>,

Sie haben für Ihren Bennutzer: <we:sessionField type="print" name="Username"/> ein neues Passwort angefordert.

Um den Prozess abzuschließen, klicken Sie bitte auf folgenden Link: <we:customerResetPasswordLink id="123" plain="true" comment="id enthaelt die ID des webEdition Documents mit dem Tag <we:customerResetPassword/>"/> .

Sollten Sie kein neues Passwort angefordert haben, so irgnorieren Sie bitte diese E-Mail.

Mit freundlichen Grüßen,

Neues Passwort anfordern -> E-Mail -> Neues Passwort vergeben



Der Kunde hat sein Passwort vergessen und fordert zunächst an, sein Passwort neu vergeben zu wollen. Auf der Website muss er zunächst dafür ein Formular ausfüllen, dass ihn als Nutzer identifiziert. Anschließend bekommt er eine E-Mail mit Bestätigungspink, den er Klicken muss und danach kann er dann über ein weitere Formular sein Passwort neu vergeben.

Template zum Anfordern und Ändern des Passwortes

<we:setVar to="global" nameto="showFormEmail" value="true" comment="zeige Formular fuer die Eingabe des Usernames oder E-Mail"/>
<we:setVar to="global" nameto="showFormPassword" value="false" comment="zeige Formular fuer die Eingabe des neuen Passwortes"/>
<we:setVar to="global" nameto="errorToken" value="false"/>
<we:setVar to="global" nameto="errorWrongEmail" value="false"/>
<we:setVar to="global" nameto="errorRequiredFields" value="false"/>
<we:setVar to="global" nameto="errorPasswordMismatch" value="false"/>
<we:setVar to="global" nameto="successSendEmail" value="false"/>
<we:setVar to="global" nameto="successResetPassword" value="false"/>

<?php
$GLOBALS['Username'] = isset($_REQUEST['s']['Username']) ? $_REQUEST['s']['Username'] : '';
$GLOBALS['Password'] = isset($_REQUEST['s']['Password']) ? $_REQUEST['s']['Password'] : '';
?>

<we:ifVarNotEmpty type="request" match="token">
<we:ifVarNotEmpty type="request" match="user">
<we:ifVarNotEmpty type="global" match="Password">
<we:customerResetPassword type="resetFromMail" loadFields="Forename,Surname,Username"/>
<we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="token">
<we:setVar to="global" nameto="errorToken" value="true"/>
</we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="required">
<we:setVar to="global" nameto="errorRequiredFields" value="true"/>
<we:setVar to="global" nameto="showFormPassword" value="true"/>
<we:setVar to="global" nameto="showFormEmail" value="false"/>
</we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="passwordMismatch">
<we:setVar to="global" nameto="errorPasswordMismatch" value="true"/>
<we:setVar to="global" nameto="showFormPassword" value="true"/>
<we:setVar to="global" nameto="showFormEmail" value="false"/>
</we:ifNotCustomerResetPassword>
<we:else comment="Passwort erfolgreich zurueckgesetzt"/>
<we:setVar to="global" nameto="showFormEmail" value="false"/>
<we:setVar to="global" nameto="successResetPassword" value="true"/>
</we:ifNotCustomerResetPassword>
<we:else comment="link in bestaetiugungs email wurde aufgerufen, jetzt muss noch das passwort geaendert werden"/>
<we:setVar to="global" nameto="showFormPassword" value="true"/>
<we:setVar to="global" nameto="showFormEmail" value="false"/>
</we:ifVarNotEmpty>
</we:ifVarNotEmpty>
<we:else comment="es wurde noch keine confirmation email versandt"/>
<we:ifVarNotEmpty type="global" match="Username">
<we:customerResetPassword type="email" required="Username" customerEmailField="Kontakt_Email" loadFields="Forename,Surname,Username"/>
<we:ifNotCustomerResetPassword>
<we:ifNotCustomerResetPassword type="required">
<we:setVar to="global" nameto="errorRequiredFields" value="true"/>
</we:ifNotCustomerResetPassword>
<we:else comment="Username wurde angegeben und in der KV gefunden, jetzt versenden wir eine E-Mail"/>
<we:setVar to="global" nameto="showForm" value="false"/>
<we:sessionField type="print" name="Username" to="global" nameto="recipientEmail"/>

<we:sendMail id="407" subject="Neues Passwort anfordern" recipient="\$recipientEmail" from="info@test.de" charset="utf-8" comment="id enthaelt die ID des webEdition Dokuments, welches auf der nachfolgenden Vorlage basiert"/>

<we:setVar to="global" nameto="showFormEmail" value="false"/>
<we:setVar to="global" nameto="successSendEmail" value="true"/>
</we:ifNotCustomerResetPassword>
</we:ifVarNotEmpty>
</we:ifVarNotEmpty>

<article class="clearfix">
<h1>Passwort vergessen</h1>
<we:ifVar type="global" name="successResetPassword" match="true" operator="equal">
<strong class="success">Ihr neues Passwort wurde erfolgreich gespeichert</strong>
</we:ifVar>

<we:ifVar type="global" name="successSendEmail" match="true" operator="equal">
<strong class="success">Wir haben Ihnen soeben eine Bestätigungs-E-Mail zugesandt. Bitte klicken Sie den dort enthaltenen Link.</strong>
</we:ifVar>

<we:ifVar type="global" name="errorWrongEmail" match="true" operator="equal">
<strong class="error">Die angegebene E-Mail-Adresse ist in unserem System nicht hinterlegt!</strong>
</we:ifVar>

<we:ifVar type="global" name="errorRequiredFields" match="true" operator="equal">
<strong class="error">Bitte füllen Sie alle Felder aus!</strong>
</we:ifVar>

<we:ifVar type="global" name="errorPasswordMismatch" match="true" operator="equal">
<strong class="error">Die eingegebenen Passwöter stimmen nicht überein.</strong>
</we:ifVar>

<we:ifVar type="global" name="errorToken" match="true" operator="equal">
<strong class="error">Die Verifizierung ist nicht mehr möglich. Eventuell ist die erlaubte Zeitspanne überschritten. Bitte starten Sie den Prozess erneut.</strong>
</we:ifVar>

<we:ifVar type="global" name="showFormEmail" match="true" operator="equal">
<we:form id="self" method="post">
<input type="hidden" name="notfirst" value="true"/>
<label for="Username">E-Mail-Adresse</label>
<we:sessionField type="textinput" name="Username" id="Username" placeholder="E-Mail-Adresse"/>
<input type="submit" value="Passwort zurücksetzen"/>
</we:form>
</we:ifVar>

<we:ifVar type="global" name="showFormPassword" match="true" operator="equal">
<h3>Sie können jetzt Ihr Passwort neu vergeben.</h3>
<we:form id="self" method="post">
<we:comment>token aus email-link wird fuer passwort aendern benoetigt</we:comment>
<we:hidden name="token" type="request" xml="true" />

<we:comment>user aus email-link wird fuer passwort aendern benoetigt</we:comment>
<we:hidden name="user" type="request" xml="true" />

<label for="Password">Passwort</label>
<we:sessionField type="password" name="Password" id="Password" placeholder="Neues Passwort"/><br/><br/>
<label for="Password2">Passwort wiederholen</label>
<we:sessionField type="password" name="Password2" id="Password2" placeholder="Passwort wiederholen" comment="es ist wichtig, dass dieses Feld 'Password2' heisst"/>
<input type="submit" value="Passwort neu setzen"/>
</we:form>
</we:ifVar>
</article>


E-Mail-Template mit Bestätigungs-Link

Sehr geehrte/r <we:sessionField type="print" name="Forename"/> <we:sessionField type="print" name="Surname"/>,

Sie haben für Ihren Bennutzer: <we:sessionField type="print" name="Username"/> ein neues Passwort angefordert.

Um den Prozess abzuschließen, klicken Sie bitte auf folgenden Link: <we:customerResetPasswordLink id="123" plain="true" comment="id enthaelt die ID des webEdition Documents mit dem Tag <we:customerResetPassword/>"/> .

Sollten Sie kein neues Passwort angefordert haben, so irgnorieren Sie bitte diese E-Mail.

Mit freundlichen Grüßen,
powered by webEdition CMS