Mitglieder login ohne username nur mit Passwort
Hallo liebe Contao Community,
ich habe bereits viel recherchiert und bis auf einige Lösungsansätze aus 2010 bin ich auf nichts Zielführendes gestoßen.
Die Aufgabenstellung:
Kunden die eine Mail (nicht aus Contao) mit einem Zugangscode erhalten, soll es möglich sein, sich auf einer Landingpage durch Eingabe dieses Zugangscodes (Login Feld) auf ein Formular zu gelangen. Es soll hierbei kein Username oder E-Mail-Adresse abgefragt bzw. angezeigt werden. Die Landingpage funktioniert bereits mehrsprachig. Der Login mit username und PW funktioniert und die Weiterleitung zu dem Formular funktioniert ebenfalls. Eine Mitgliedergruppe für dieses Vorhaben ist bereits angelegt.
Schwierigkeit: Es gibt einen weiteren Mitgliederlogin auf der Seite der durch Änderungen am "mod_login_1cl" nicht beeinträchtigt werden soll. (Hier ist Username und PW gewünscht)
System: Contao 3.5.18
Die Lösungsansätze:
1)
https://community.contao.org/de/show...Benutzernamens
Zitat von Balduin:
Mein Gedanke war einen Benutzer anzulegen dessen Benutzername im Formularfeld schon vorausgefüllt ist, und dann das ganze Formularfeld "Benutzername" einfach über display:none auszublenden.
War ein guter Gedanke, so hats funktioniert. Ich habe ein Template für das Login-Formular angelegt und darin für das erste Feld als Value den Benutzernamen angegeben und dann das ganze einfach ausgeblendet.
Gibt nur ein Problem: Für das Login-Formular kann man nur ein einziges Template anlegen. Das ist dann doof, wenn man auf der selben Website noch ein anderes Login-Formular MIT Benutzernamen anlegen möchte. Dafür habe ich hier noch eine ganz interessante Lösung gefunden:
http://www.contao.org/board/topic/10549.html#new-name
Ist allerdings auch eine etwas umständliche Methode. Bleibt also nur zu hoffen, daß man in Zukunft vielleicht auch mal mehrere Templates für ein Login-Formular anlegen kann.
2)
https://community.contao.org/de/show...login+username
Zitat:
Zitat von
Samuell
Hallo liebe Community,
heute kam genau das Thema "Login im FE nur mit Mitgliedername" auch bei mir auf und @xtra war so freundlich ein kleines Script dafür zu basteln, dass die ursprüngliche Idee sogar noch erweitert.
Hinweis:
Dieses Vorgehen ist logischerweise nicht so sicher wie der reguläre Login via Passwort und Benutzername.
Überlegt euch sehr, sehr gut ob und wo Ihr diese Methode anwendet.
In meinem Fall geht es nur um ein paar ergänzende Seminarunterlagen, die nicht ganz frei zugänglich sein sollen, weshalb ich keine Bedenken bzgl. der Sicherheit haben muss.
Einrichtung
Legt eine Mitgliedergruppe (zB "Direktlogin") an, in der die Mitglieder sich ohne Passwort einloggen dürfen und merkt euch dessen Gruppen-ID, die beim "hover" über den blauen Kreis ganz rechts in der Gruppenliste zu sehen ist.
Öffnet die Datei
PHP-Code:
system/config/initconfig.php
und tragt dort folgenden Code ein:
PHP-Code:
<?php
$GLOBALS['TL_HOOKS']['checkCredentials'][] = array('MyClass', 'myCheckCredentials');
if (\Input::post('username') && !\Input::post('password')) {
\Input::setPost('password', 'dontcare');
}
class MyClass
{
public function myCheckCredentials($username, $password, \User $user)
{
// 42 == member group id of autologin members.
if (($user instanceof \FrontendUser) && $user->isMemberOf(42)) {
return true;
}
}
}
Tauscht die "42" durch die ID eurer Mitgliedergruppe aus
Funktion
Ist das Mitglied nicht in der Gruppe "Direktlogin" und versucht sich anzumelden, greift der normale Anmeldemechanismus.
Befindet sich das Mitglied jedoch in der Gruppe "Direktlogin", so kann es sich mit und ohne Angabe des Passwortes nur mit seinem Benutzernamen anmelden.
In meinem Fall wird der Benutzername eine Kursnr. sein, ist also nicht für jeden sofort zu erreaten.
Jedoch sei auch an dieser Stelle nochmal explizit darauf hingewiesen:
Diese ist logischerweise nicht so sicher wie der reguläre Login via Passwort und Benutzername. Wendet Sie nicht an wenn Ihr Daten habt, die Ihr wirklich schützen wollt oder müsst. Überlegt euch vor dem Einsatz gut, ob es nicht auch anders geht.
Vielen Dank an dieser Stelle nochmal an @xtra für das Bereitstellen dieser Lösung!
Frage:
>Ist das mittlerweile möglich bzw. wie ist das zu realisieren?
>Gibt es eine Erweiterung?
>Sowas sollte doch bei Gewinnspielen oder ähnlich schon öfters gebraucht worden sein - oder denke ich in eine falsche Richtung?
Viele Grüße
Jan