Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:felogin

felogin

  1. Inhaltselement Login anlegen. Wenn das u.a. TypoScript verwendet wird, muss die Flexform nicht ausgefüllt werden.
  2. TypoScript einbinden
  3. ggf. eigenes HTML-Template anlegen

Snippets

TypoScript

plugin.fe_login.t3s
plugin.tx_felogin_pi1 {
	# Eigenes Template-File angeben
	templateFile = fileadmin/Resources/Private/Templates/felogin_template.html
 
	# Ordner mit FE-Benutzern
	storagePid = 17
 
	# Weiterleitungen
	redirectMode = login,logout
	redirectFirstMethod = 0
	redirectPageLogin = 8
	redirectPageLoginError = 9
	redirectPageLogout = 9
	redirectDisable = 0
 
	# Wichtig für Weiterleitung. Wenn aktiviert, funktioniert diese nicht!
	showLogoutFormAfterLogin = 0
 
	showForgotPasswordLink = 1
 
	# Evtl. vorhandene GET-Parameter erhalten
	preserveGETvars = all
 
	# HTML-Tags ändern (Standard: h3 und div)
	welcomeHeader_stdWrap.wrap = <h1>|</h1>
	welcomeMessage_stdWrap.wrap = <p>|</p>
	successHeader_stdWrap.wrap = <h1>|</h1>
	successMessage_stdWrap.wrap = <p>|</p>
	logoutHeader_stdWrap.wrap = <h1>|</h1>
	logoutMessage_stdWrap.wrap = <p>|</p>
	errorHeader_stdWrap.wrap = <h1>|</h1>
	errorMessage_stdWrap.wrap = <p>|</p>
	forgotHeader_stdWrap.wrap = <h1>|</h1>
	forgotMessage_stdWrap.wrap = <p>|</p>
 
	# Mitteilungen
	_LOCAL_LANG.de {
		ll_welcome_header = An der Website anmelden
		ll_status_header = Möchten Sie sich abmelden?
	}
}

HTML-Template

Aus der Standard-Vorlage wurden m.E. überflüssige Texte entfernt.

felogin_template.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Templates for felogin</title>
</head>
<body>
 
<h1>Common markers</h1>
<p>These are substituted in all felogin item displaying templates.</p>
 
<h2>Markers</h2>
<ul>
	<li>###ACTION_URI###     - URI of the request for the login/logout form</li>
	<li>###EXTRA_HIDDEN###   - Hook required (additional hidden field used by kb_md5fepw extension by Kraft Bernhard)</li>
	<li>###ON_SUBMIT###      - Hook required (used by kb_md5fepw extension by Kraft Bernhard)</li>
	<li>###PREFIXID###       - Same as class name ('tx_felogin_pi1') useful to get a unique classname prefix</li>
	<li>###REDIRECT_URL###   - URL of redirection upon login</li>
	<li>###NOREDIRECT###     - if set, no redirect will be done</li>
	<li>###STORAGE_PID###    - explicit enough I guess (if not : id of the page where user are stored)</li>
	<li>###STATUS_HEADER###  - depends of the template</li>
	<li>###STATUS_MESSAGE### - depends of the template</li>
</ul>
 
<h2>Wrap parts</h2>
<ul>
	<li>###HEADER_VALID###  - useful to define what to show/hide</li>
	<li>###MESSAGE_VALID### - useful to define what to show/hide</li>
	<li>###FORGOTP_VALID### - useful to define what to show/hide</li>
	<li>###PERMALOGIN_VALID### - useful to define what to show/hide</li>
</ul>
 
<h2>felogin Language Markers (see pi/locallang.xml)</h2>
<ul>
	<li>###EMAIL_LABEL###                 - corresponding to 'your_email'</li>
	<li>###FORGOT_PASSWORD###             - corresponding to 'forgot_password'</li>
	<li>###FORGOT_PASSWORD_BACKTOLOGIN### - corresponding to 'forgot_password_backToLogin'</li>
	<li>###FORGOT_PASSWORD_ENTEREMAIL###  - corresponding to 'forgot_password_enterEmail'</li>
	<li>###LOGIN_LABEL###                 - corresponding to 'login'</li>
	<li>###PASSWORD_LABEL###              - corresponding to 'password'</li>
	<li>###SEND_PASSWORD###               - corresponding to 'send_password'</li>
	<li>###USERNAME_LABEL###              - corresponding to 'username'</li>
</ul>
 
 
<!--###TEMPLATE_LOGIN###-->
 
###STATUS_HEADER###
###STATUS_MESSAGE###
<!-- ###LOGIN_FORM### -->
<form action="###ACTION_URI###" target="_top" method="post" onsubmit="###ON_SUBMIT###">
	<fieldset>
	<div>
		<label for="user">###USERNAME_LABEL###</label>
		<input type="text" id="user" name="user" value="" />
	</div>
	<div>
		<label for="pass">###PASSWORD_LABEL###</label>
		<input type="password" id="pass" name="pass" value="" />
	</div>
 
	<!--###PERMALOGIN_VALID###-->
	<div>
		<label for="permalogin">###PERMALOGIN###</label>
		<input name="permalogin" value="0" type="hidden" ###PERMALOGIN_HIDDENFIELD_ATTRIBUTES### id="permaloginHiddenField" />
		<input name="permalogin" value="1" type="checkbox" ###PERMALOGIN_CHECKBOX_ATTRIBUTES### id="permalogin"  onclick="document.getElementById('permaloginHiddenField').disabled = this.checked;" />
	</div>
	<!--###PERMALOGIN_VALID###-->
 
	<div>	
		<input type="submit" name="submit" value="###LOGIN_LABEL###" />
	</div>
 
	<div class="felogin-hidden">
		<input type="hidden" name="logintype" value="login" />
		<input type="hidden" name="pid" value="###STORAGE_PID###" />
		<input type="hidden" name="redirect_url" value="###REDIRECT_URL###" />
		<input type="hidden" name="###PREFIXID###[noredirect]" value="###NOREDIRECT###" />
		###EXTRA_HIDDEN###
	</div>
	</fieldset>
</form>
 
<!--###FORGOTP_VALID###-->
<p><!--###FORGOT_PASSWORD_LINK###-->###FORGOT_PASSWORD###<!--###FORGOT_PASSWORD_LINK###--></p>
<!--###FORGOTP_VALID###-->
 
<!-- ###LOGIN_FORM### -->
 
<!--###TEMPLATE_LOGIN###-->
 
 
<!--###TEMPLATE_LOGOUT###-->
 
###STATUS_HEADER###
 
<form action="###ACTION_URI###" target="_top" method="post">
	<fieldset>
	<div>
		<p>###USERNAME_LABEL### <strong>###USERNAME###</strong></p>
    	</div>
	<div>
		<input type="submit" name="submit" value="###LOGOUT_LABEL###" />
	 </div>
 
	<div class="felogin-hidden"> 
		<input type="hidden" name="logintype" value="logout" />
		<input type="hidden" name="pid" value="###STORAGE_PID###" />
		<input type="hidden" name="###PREFIXID###[noredirect]" value="###NOREDIRECT###" />
	</div>
	</fieldset>
</form>
 
<!--###TEMPLATE_LOGOUT###-->
 
 
<!--###TEMPLATE_FORGOT###-->
 
###STATUS_HEADER###
###STATUS_MESSAGE###
 
 
<!-- ###FORGOT_FORM### -->
<form action="###ACTION_URI###" method="post">
    <div class="felogin-hidden">
		<input type="hidden" name="tx_felogin_pi1[forgot_hash]" value="###FORGOTHASH###" />
	</div>
	<fieldset>
	<div>
		<label for="###FORGOT_EMAIL###">###DATA_LABEL###</label>
		<input type="text" name="###FORGOT_EMAIL###" id="###FORGOT_EMAIL###" />
	</div>
	<div>
		<input type="submit" name="submit" value="###SEND_PASSWORD###" />
	 </div>
	</fieldset>
</form>
<!-- ###FORGOT_FORM### -->
<p>###BACKLINK_LOGIN###&nbsp;</p>
<!--###TEMPLATE_FORGOT###-->
 
 
<!--###TEMPLATE_CHANGEPASSWORD###-->
 
###STATUS_HEADER###
###STATUS_MESSAGE###
 
<!-- ###CHANGEPASSWORD_FORM### -->
<form action="###ACTION_URI###" method="post">
	<fieldset>
		<legend>###LEGEND###</legend>
		<div>
			<label for="###NEWPASSWORD1###">###NEWPASSWORD1_LABEL###</label>
			<input type="password" name="###NEWPASSWORD1###" id="###NEWPASSWORD1###" />
		</div>
		<div>
			<label for="###NEWPASSWORD2###">###NEWPASSWORD2_LABEL###</label>
			<input type="password" name="###NEWPASSWORD2###" id="###NEWPASSWORD2###" />
		</div>
		<div>
			<input type="submit" name="tx_felogin_pi1[changepasswordsubmit]" value="###SEND_PASSWORD###" />
		 </div>
	</fieldset>
 
</form>
<!-- ###CHANGEPASSWORD_FORM### -->
###BACKLINK_LOGIN###
<!--###TEMPLATE_CHANGEPASSWORD###--> 

Nach Login zur ursprünglichen Seite

Beim Aufruf einer geschützten Seite kann ein Get-Parameter übergeben werden, der die UID der gewünschten Seite enthält. Der Benutzer wird zur Login-Seite umgeleitet; nach erfolgreicher Anmeldung wird die ursprünglich gewählte Seite geladen.

 

Troubleshooting

Weiterleitung nach Login

Die Weiterleitung funktioniert nicht, wenn die Loginseite nach dem Anmelden auf nicht sichtbar gestellt wird. Dies lässt sich umgehen, indem man mit einem Seitenverweis arbeitet: Seite Login verweist auf die eigentliche Seite mit dem felogin-Plugin; nach dem Anmelden wird die Seite Login versteckt. Außerdem sorgt auch die aktivierte Einstellung showLogoutFormAfterLogin für das Scheitern der Weiterleitung.

felogin und weiteres Formular auf gleicher Seite

felogin ohne JavaScript

Ein Login ist nicht möglich, wenn im Browser JavaScript deaktiviert ist. Ursache ist die Extension rsaauth, welche die im Formular eingegebenen Daten für die sichere Übertragung zum Webserver mit JavaScript verschlüsselt.

Im Install Tool kann [FE][loginSecurityLevel] auf normal gesetzt werden. Es empfiehlt sich, die Übertragung spätestens dann mit SSL/TLS zu verschlüsseln.

Kein erfolgreicher Login, keine Fehlermeldung

Mögliche Ursache: Die baseURL muss exakt mit der aufgerufenen Adresse übereinstimmen. Auch ein abweichendes Protokoll macht für felogin den entscheidenen Unterschied!

Wenn im Install Tool der Wert $GLOBALS['TYPO3_CONF_VARS']['SYS']['cookieDomain'] gesetzt wurde, muss dieser exakt mit der verwendeten Domain übereinstimmen.

Seit TYPO3 CMS 7.4 gibt es im HTML-Template von felogin das neue Attribut data-rsa-encryption, welches für einen erfolgreichen Login zwingend erforderlich ist (innerhalb von <!–###TEMPLATE_LOGIN###–>):

<input type="password" id="pass" name="pass" value="" data-rsa-encryption="" />
typo3/felogin.txt · Zuletzt geändert: 2017/04/09 10:48 von admin