Login Link mit Hashkey

  • Liebe Community,

    hat jemand eine Ahnung, ob es irgendwie möglich ist, einen verschlüsselten Link mit Username und Passwort zu erstellen und diesen an das angegebene Passwort des Users zu versenden?
    Ich habe das Problem, dass im Rahmen einer Online-Konferenz die User oft zum Startzeitpunkt ihre angegebenen Userdaten vergessen haben, und sich nicht einloggen können.
    Daher würde ich gerne kurz vor der Konferenz einen Link an die Benutzer senden, mit dem sie sich automatisch mit ihren Benutzerdaten einloggen können, ohne diese wissen zu müssen.

    Ich hatte eine ähnliche Lösung bei einem anderen CMS in der Vergangenheit realisiert, dort konnte man einen Link zum Einloggen erzeugen, der mittels Hashcode dann den User eingeloggt hat.

    Kann mir hier jemand bitte helfen, ob man das in Joomla realisieren kann?

  • Hallo,


    interessantes Problem. Spontan habe ich auf extensions.joomla.org nichts gefunden, aber vielleicht hast du mit anderen Suchwörtern mehr Glück.


    Ich habe sowas ähnliches schon mal mit einem Plugin gelöst. Kommt jetzt ein bisschen darauf an, wie es um die Programmierfähigkeiten steht. Grob umrissen sehe ich da 2 Bereiche, die behandelt werden müssen. Hierbei bietet sich com_ajax an.

    Bereich 1: im Backend (?) die Userliste um die Links zu versenden. Dort kann per Plugin ein Button eingebaut werden, was bei Klick den Hash generiert (irgendwo speichert) und an die gewählten Benutzer die Email mit Link (z.B. https://example.com/index.php?…group=system&hash=xxxxxxx) versendet (theoretisch könntest du hier auch das Passwort neu setzen und diese nochmals mitschicken...je nach Bedarf). Den Link würde ich wie gesagt über com_ajax laufen lassen. (eine kleine Idee meinerseits: hier könntest du auch einen zweiten Button einbauen, der einen QR-Button anzeigt, mit dem dann die Teilnehmer sich live vor Ort einloggen können, falls sie die Email nicht parat haben)


    Nun geht es darum den Klick auf den Link zu verarbeiten. Einen User einzuloggen ist relativ einfach in Joomla: zuerst wird der User authentifiziert (was die "authentication" Plugins erledigen) und dann autorisiert (das erledigt dann das user/joomla Plugin).

    Wir überspringen das authentifizieren, da wir ja nicht den normalen Loginprozess verwenden sondern landen direkt im Autorisierungs (und somit Login-)prozess. Nachdem du über den Hash den richtigen User aus der Datenbank geladen hast, kannst du diesen Einloggen.


    Wir reden hierzu von folgener Stelle: https://github.com/joomla/joom…Application.php#L902-L932

    Diesen Code übernimmst du in dein Plugin.


    Zusammengefasst könnte der Code im Plugin in etwa so aussehen (umschlossen natürlich in der entsprechenden Methode, die über com_ajax getriggert wird):


  • Vielen Dank, dass Du Dich so intensiv mit dem Problem auseinandergesetzt hast. Ehrlich gesagt wollte ich nichts programmieren und dachte, dies wäre bereits irgendwie möglich. Aber vielen Dank für den Entwurf, ich werde das mal mit meinem Entwickler durchsprechen, ob er daraus etwas basteln kann. Ich werde dann die Ergebnisse hier teilen