<we:sessionStart />
Beginnt eine Session oder setzt eine Bestehende fort.Dieses Tag wird auf folgenden Vorlagen benötigt:
- bei Seiten, welche durch die Kundenverwaltung geschützt sind
- bei Shopseiten
- bei Frontend-Eingaben (Erzeugung von webEdition-Dokumenten und Objekten über das Frontend)
ab Version | 1.3.0.0 |
Endtag erforderlich | nein |
Pflichtattribute |
Attribute
Wird dieses Attribut auf "true" gesetzt, so haben Kunden die Möglichkeit, sich per Cookie (von verschiedenen Computern und verschiedenen Browsern aus) einzuloggen. Die Logindaten werden verschlüsselt in der tblWebUserAutologin gespeichert.
Ein Cookie wird nur gesetzt, wenn bei einem "normalen" Login-Vorgang die Variable $_REQUEST["s"]["AutoLogin"] gesetzt und true ist. Dies kann über den Tag <we:sessionField type="checkbox" name="AutoLogin" /> "Automatisches LogIn" erreicht werden.
Das Cookie wird beim Logout-Vorgang gelöscht.
Die SessionKeys in den Cookies werden bei jedem Login-Vorgang neu generiert und gesetzt und bei einer Passwortänderung komplett verworfen. Über die Kundenverwaltung kann auch einzelnen Benutzern ein Login über Cookies gezielt verboten werden.
ab Version | 1.3.0.0 |
Typ | boolean |
mögliche Werte | true, false |
Standardwert | false |
Legt fest, ob die aktuelle Seite des aktuellen Logins im Monitor gespeichert werden soll.
Wird dieses Attribut auf "true" gesetzt, so werden Nutzer der Website in tblWebUserSessions gespeichert.
Die Daten der aktiven Nutzer können dann über eine <we:listview type="onlinemonitor"> abgerufen werden.
In Kombination mit monitorgroupfield kann damit zum Beispiel erreicht werden, dass Logins in einem speziellen Admin-Bereich nicht in der Liste der aktiven Nutzer bei der Ausgabe über <we:listview type="onlinemonitor"> erscheinen.
ab Version | 1.3.0.0 |
Typ | boolean |
mögliche Werte | true, false |
Standardwert | false |
Name eines Feldes aus der Kundenverwaltung das die "Gruppe" eines Nutzers angibt (z.B. Administrator, Moderator, Nutzer).
Oft (nicht immer) handelt es sich dabei um das Feld, das auch für die Gruppierungen im Tree der Kundenverwaltung benutzt wird.
Danach kann in der listview <we:listview type="onlinemonitor"> bei der Ausgabe sortiert werden.
In Kombination mit onlinemonitor kann damit zum Beispiel erreicht werden, dass Logins in einem speziellen Admin-Bereich nicht in der Liste der aktiven Nutzer bei der Ausgabe über <we:listview type="onlinemonitor"> erscheinen.
ab Version | 1.3.0.0 |
Typ | string |
Standardwert | - |
Speichert die ID der gerade besuchten Seite des eingeloggten Nutzers. Dies kann dann über eine <we:listview type="onlinemonitor"> ausgegeben werden.
ab Version | 1.3.0.0 |
Typ | string |
mögliche Werte | self, top |
Standardwert | - |
Ist das Attribut true, wird die Session nur gestartet, wenn beim Login ein OTP Kode mitgegeben wurde und dieser korrekt war.
ab Version | 9.2.4 |
Typ | boolean |
Standardwert | false |
Syntax
<we:sessionStart persistentlogins="true|false" onlinemonitor="true|false" monitorgroupfield="" monitordoc="self|top" otp=""/>
Beispiele
Beispiel #1 - Login mittels TOTP
Hier wird ein vollständiges Beispiel gezeigt, wie ein Login mittels TOTP funktioniert
CodeTemplate 1: <we:sessionStart otp="true"/> <html><head></head><body> <we:registerSwitch/> <we:ifLoginFailed> <we:ifLoginFailed type="otp_user_unset"> Sie loggen sich zum ersten Mal ein, das OTP-Token muß erst festgelegt werden: <we:form id="2" comment="ID des 2. Templates"> <table> <tr><td colspan="2"><span><we:sessionField name="Username" pass_id="username" placeholder="Benutzername" type="textinput" autofocus="autofocus" required="required"/></td><td></td></tr> <tr><td colspan="2"><span><we:sessionField name="Password" pass_id="password" placeholder="Passwort" type="password" required="required" /></td></tr> <tr><td colspan="2"><td><we:createOTP name="Mein Portal"/><br/>Scannen Sie den angezeigten Kode und tragen das Ergebnis unten ein</td></tr> <tr><td colspan="2"><span><we:sessionField name="TOTP" placeholder="123456" type="textinput" placeholder="123456" pattern="[0-9]{6,}" type="textinput" maxlength="10" required="required"/></td></tr> <tr><td colspan="2" class="loginButton"><button type="submit"><i class="fas fa-sign-in-alt"></i>OTP bestätigen</button></td><td></td></tr> </table> </we:form> </we:ifLoginFailed> <we:ifLoginFailed type="otp_request_unset"> Fehler: Das Feld des OTP-Tokens war leer </we:ifLoginFailed> <we:ifLoginFailed type="otp_invalid"> Fehler: Der OTP-Token war ungültig </we:ifLoginFailed> </we:ifLoginFailed> <we:ifNotRegisteredUser> <we:ifNotLoginFailed type="otp_user_unset"> <we:form> <table> <tr><td colspan="2"><span><we:sessionField name="Username" pass_id="username" placeholder="Benutzername" type="textinput" autofocus="autofocus" required="required"/></td><td></td></tr> <tr class="inputRow"><td colspan="2"><span><we:sessionField name="Password" pass_id="password" placeholder="Passwort" type="password" required="required"/></td></tr> <tr class="inputRow"><td colspan="2"><span><we:sessionField name="TOTP" placeholder="123456" type="textinput" placeholder="123456" pattern="[0-9]{6,}" type="textinput" maxlength="10" required="required"/><br/>Wenn Sie noch keinen Kode besitzten, tragen Sie hier 123456 ein</td></tr> <tr class="inputRow"><td colspan="2" class="loginButton"><button type="submit"><i class="fas fa-sign-in-alt"></i>Login</button></td><td></td></tr> </table> </we:form> </we:ifNotLoginFailed> </we:ifNotRegisteredUser> <we:ifRegisteredUser otp="true"> Erfolgreich mit OTP angemeldet <we:sessionLogout id="self">Logout</we:sessionLogout> </we:ifRegisteredUser> </body></html> Template 2: <we:sessionStart/> <html><head></head><body> <we:ifLoginFailed> da ist etwas schief gelaufen:<?= we_tag_ifLoginFailed::$loginfailed; ?> </we:ifLoginFailed> <we:ifLogin> Eingeloggt. <we:ifRegisteredUser otp="true"> dies darf nicht ausgegeben werden </we:ifRegisteredUser> <we:ifRegisteredUser> Benutzername/Passwort Ok. <we:saveRegisteredUser changesessiondata="true" allowed="TOTP"/> <we:ifWritten type="customer"> save erfolgreich </we:ifWritten> <we:ifRegisteredUser otp="true"> OTP-Token erfolgreich geschrieben. Bitte loggen Sie sich noch mal neu ein<br/> Hier dran denken, das der eingegebene OTP-Token ggf. noch gültig, aber verbraucht ist; d.h. Login geht erst in 30 Sekunden wieder </we:ifRegisteredUser> <we:sessionLogout force="true"/> </we:ifRegisteredUser> </we:ifLogin> </body></html>
Hilf mit!
Hast Du eine Ergänzung für die Tag-Referenz, dann werde bitte aktiv.
Entweder über einen Eintrag unter qa.webedition.org oder
einfach formlos per E-Mail an
websites@webedition.org.
Fehler oder Erweiterungswünsche zu webEdition selbst bitte über qa.webedition.org melden.