Zum Inhalt springen

felogin + sr_feuser_register auf einer Seite

Erstellt am 16. Oktober 2012 · 3 Antworten · letzte Antwort am 18. Oktober 2012

Tags: felogin, Frontend-Benutzer, Frage

Gernott ·

Hallo,

ich habe (ähnlich wie bei Facebook) das Loginformular und Registrierungsformular auf einer Seite.
System: TYPO3 4.7, felogin, sr_feuser_register 3.0.1, Salted Passwords mit RSA aktiviert.

Problem: Sobald ich beide Extensions eingebunden habe, funktioniert das Login nicht mehr. Ich habe recherchiert und herausgefunden, dass beide Extensions diesen Abschnitt ins Formular einbinden:

<script type="text/javascript" src="typo3/sysext/rsaauth/resources/jsbn/jsbn.js"></script>
<script type="text/javascript" src="typo3/sysext/rsaauth/resources/jsbn/prng4.js"></script>
<script type="text/javascript" src="typo3/sysext/rsaauth/resources/jsbn/rng.js"></script>
<script type="text/javascript" src="typo3/sysext/rsaauth/resources/jsbn/rsa.js"></script>
<script type="text/javascript" src="typo3/sysext/rsaauth/resources/jsbn/base64.js"></script>
<script type="text/javascript" src="typo3/sysext/rsaauth/resources/rsaauth_min.js"></script>
<input type="hidden" id="rsa_n" name="n" value="xxxxx" />
<input type="hidden" id="rsa_e" name="e" value="10001" />

Das bingt nun folgende Probleme:
- Die Seite ist nicht mehr HTML-valide. Es gibt die beiden IDs rsa_n und rsa_e doppelt.
- Beim Absenden des Login-Formulares werden anscheinend die falschen Keys der Registrierung übertragen und es schlägt fehl.

Hat jemand eine Idee wie man das in dne Griff bekommen kann?

Vielen Dank
Gernott

mkaestner ·

Hi,

interessant. Nicht-Valide ist es ja nur wegen der doppelt vergebenen IDs nicht mehr. Eine einfache Lösung fällt mir dazu nicht ein, außer dass die IDs geändert werden müssen. Dieser Code wird in der rsaauth-Extension innerhalb zweier Hooks eingebaut. Du könntest in der Extension rsaauth eine der beiden Dateien editieren und die IDs dort verändern:
typo3/sysext/rsaauth/hooks/class.tx_rsaauth_feloginhook.php
typo3/sysext/rsaauth/hooks/class.tx_rsaauth_loginformhook.php

Damit verlierst du aber die Update-Fähigkeit für Typo3. Bzw. du musst diese Änderung nach jedem Typo3-Update wieder machen. Du solltest zusätzlich auch einen Bugeintrag schreiben:
http://forge.typo3.org/projects/typo3v4-core/issues
(rsaauth gehört zum Core)

Sofern ich das gesehen habe, wird auf die Werte in den hidden-Feldern über das name-Attribut zugegriffen, nicht über den id-Wert. Aber ich kann das nicht ausschließen, also bitte selbst testen, bevor es bei einer Live-Installation so geändert wird.

Damit wird dieser Fehler auch in einer der nächsten Typo3-Versionen korrigiert werden.

bis bald
Martin

mkaestner ·

Beim Absenden des Login-Formulares werden anscheinend die falschen Keys der Registrierung übertragen und es schlägt fehl.

Die JS-Funktionen arbeiten bei rsaauth eigentlich immer innerhalb der form-Tags. Das heißt es sollten da nicht die falschen Werte übertragen werden. Kannst du das sicher feststellen oder klappt nur die Anmeldung nicht?

bis bald
Martin

Gernott ·

Hi Martin,

danke für deine Antwort.
Ich habe es nun mal per Ajax gelöst:
Ich habe 2 Pagetypes erstellt, die je Login und Registrierung laden (ohne Seitenvorlage).
Da ich die beiden zwar auf einer Seite habe aber in Reitern darstelle, lade ich nun mit jQuery load() das jeweilige Plugin dynamisch. Somit klappt es auch. Nachteil: Es dauert einen kurzen Moment bis das Plugin mit Ajax geladen wurde.

Natürlich löst das nicht das ursprüngliche Problem. Ich habe es im Bugtracker gepostet. Der Fehler ist bereits seit TYPO3 4.5 bekannt. Es gibt einen Patch für 4.5. Ich muss aber erst testen ob der für 4.7 auch funktioniert.
Hier zu meinem Post: http://forge.typo3.org/issues/42050
Und zum Original: http://forge.typo3.org/issues/34568

Liebe Grüße
Gernot