Wie lautet die URL für die Benutzeranmeldung (auch bekannt als Ausblenden des Anmeldeformulars?)

10

Ich möchte Besuchern nicht erlauben, sich auf meiner Website zu registrieren. Ich finde jedoch, dass zu Testzwecken ein einziger registrierter Benutzer erforderlich ist. Zum Beispiel werde ich einen Artikel mit eingeschränktem Zugriff veröffentlichen, damit mein Testbenutzer sehen kann, wie der Artikel auf der Website aussieht, ohne der Öffentlichkeit "schmutzige Wäsche zu lüften" (ok, alle 1 / Tag, die tatsächlich besuchen ...) .

Mein Problem im Moment ist, dass ich die Website letztendlich verunstalte, da ich das Benutzeranmeldeformular veröffentlichen / aufheben muss. Derzeit "umgehe" ich dieses Problem, indem ich das Anmeldeformular in einer Unterkategorie verstecke, sodass es für einen gelegentlichen Besucher nicht sofort sichtbar ist. Ist es möglich, eine alternative Methode (z. B. eine benutzerdefinierte URL) zu erstellen, mit der mein Testbenutzer Inhalte anzeigen kann, die als eingeschränkt markiert sind, ohne zu ändern, was ein Gast mit öffentlichem Zugriff sehen würde?

Bobthechemist
quelle

Antworten:

8

Sie können ein Menü erstellen, das nicht veröffentlicht wurde, und dort einen Link zur Benutzeranmeldeseite einfügen und den Alias ​​nach Belieben benennen. Solange Sie die Funktion zum Zulassen von Registrierungen in den Benutzer-Manager-Optionen deaktivieren, sollten Sie gut sein.

Dann geben Sie Ihrem Kunden einfach die URL.

Die Schritte sind also:

  1. Erstellen Sie ein neues Menü und nennen Sie es Versteckt
  2. Veröffentlichen Sie kein Modul des neuen Menüs
  3. Fügen Sie einen neuen Menüpunkt hinzu, wählen Sie Benutzermanager und Anmeldeformular
  4. Benennen Sie den Menüpunkt Anmelden oder etwas anderes, damit Sie wissen, was es ist, aber ändern Sie den Alias ​​in etwas, das jemand nicht erraten würde.
  5. Testen Sie Ihr Formular, indem Sie auf Ihre Website.com/aliasname gehen
Brian Peat
quelle
10

Als Erweiterung der Antwort von Brian Peat:

Wenn Sie zur URL gehen

domain.com/index.php?option=com_users&view=login

Sie können sich anmelden, ohne dass ein Menüelement festgelegt ist oder Probleme beim Veröffentlichen / Aufheben der Veröffentlichung auftreten. Dies kann in Joomla als ein Problem bezeichnet werden, da Sie sich immer noch registrieren / anmelden können, wenn Sie die URL-Struktur kennen. Es gibt Regeln, die dies verhindern, aber normalerweise können Sie standardmäßig solche direkten Pfade verwenden, um dorthin zu gelangen, wo Sie hin müssen.

http://www.joomla.org/index.php?option=com_users&view=login

Hier ist es am Werk, sogar die Haupt-Joomla-Site, die keinen direkten Zugriff auf das Login hat, kann so aufgerufen werden.

Mein Punkt ist, stellen Sie sicher, dass Sie auch die richtige ACL verwenden. Wenn es sich um "nur" registrierte Benutzer handelt, kann jeder, der die Struktur von Joomla kennt, einsteigen. Wie Brian bereits gesagt hat, stellen Sie sicher, dass die Registrierung deaktiviert ist.

Jordan Ramstad
quelle
Gibt es eine analoge URL für /index.php?option=com_users&view=logout (die ich für intuitiv hielt, die sich jedoch als falsch herausstellte)?
Bobthechemist
Sie wollen sich automatisch abmelden? Es ist ein bisschen seltsam, das Abmelden in Joomla erfordert einige Post-Daten, daher das Formular / die Schaltfläche. Dieser Link führt Sie im Grunde zu einer Schaltfläche.
Jordan Ramstad
Wenn Sie wirklich besorgt sind, dass Leute auf diese Seite gelangen, können Sie entweder ein ausgefallenes Plugin installieren, das den Benutzer dazu zwingt, ein Token als Teil der URL zu verwenden (ich weiß, dass es eines für den Administrator gibt, ziemlich sicher, dass es eines für die Vorderseite gibt end) ... aber Sie können dies auch installieren: extensions.joomla.org/extensions/access-a-security/…, das IPs blockiert, wenn der Benutzer versucht, sich zehnmal anzumelden. Außerdem werden Sie benachrichtigt. Es öffnet Ihnen die Augen dafür, wie oft Ihre Website angegriffen wird. Ich habe festgestellt, dass 100% der Versuche auch "admin" als Benutzernamen verwenden.
Brian Peat
Ich wollte nur erweitern, um zu sagen, dass Login / Register auch ohne Menüpunkte immer noch zugänglich ist. Wenn Sie sich anmelden müssen, ohne sich mit einem Menüpunkt befassen zu müssen, ist dies möglich, aber es bedeutet auch, dass jeder dies tun kann. Wenn das Register nicht gesperrt ist, kann jeder auch ein Konto erstellen und auf eine "geheime" Seite zugreifen, die möglicherweise vorhanden ist, wenn keine ACL vorhanden ist, um dies zu verhindern. Dies kann erreicht werden, indem eine zusätzliche ACL-Gruppe erstellt und der Benutzer, der darauf zugreifen kann, auch in dieser Gruppe festgelegt wird. Die betreffende Seite würde auch diese Gruppe erfordern.
Jordan Ramstad
Was nützen ACLs, wenn Sie noch nicht angemeldet sind? Nach meinem Verständnis können Sie eine öffentliche Anmeldeseite ohne ein spezielles Plugin niemals ausblenden. Unabhängig davon, mit Ausnahme von Brute-Force-Angriffen, können Sie nicht weit kommen, wenn Sie kein Login haben. Ich sehe keinen Sinn darin, so viel damit zu tun zu haben.
Brian Peat
4

Sie sollten dies erreichen können, indem Sie das Layout für das Front-End-Anmeldeformular überschreiben. Fügen Sie oben in der Layoutdatei PHP-Code hinzu. Dieser hinzugefügte Code sucht nach einem benutzerdefinierten Parameter in der URL und nach einem bestimmten Wert. Wenn jemand versucht, über eine URL auf die Anmeldeseite zuzugreifen, aber den benutzerdefinierten Parameter und einen bestimmten Wert (z. B. abc = xyz ) nicht enthält, gibt der Code eine "Rückgabe" aus. damit das Layout des Formulars nicht zur Anzeige verarbeitet wird.

Mit diesem Code in der überschreibenden Layoutdatei kann nur ein Benutzer, der die URL kennt (die diesen benutzerdefinierten Parameter und einen akzeptablen Wert enthält), dieses Anmeldeformular verwenden.

Zum Beispiel: Die geheime URL kann sein

mydomain.com/?option=com_users&view=login&abc=xyz

Fügen Sie dann diesen Code oben in der überschreibenden Layoutdatei für das Anmeldeformular hinzu:

if(JFactory::getApplication()->input->get('abc')!='xyz'){
    return;
}
RCarey
quelle
Gute Idee! Dies ist eine ziemlich einfache Lösung, um die Ansicht zu deaktivieren. Es kann bei Bedarf auch auf das Modul erweitert werden (obwohl das Modul keine direkte URL für den Zugriff hat).
Jordan Ramstad
3

Ich hatte oft ein ähnliches Problem, weil ich oft ein Front-End-Login möchte, um von mir verwaltete Websites zu bearbeiten, ohne ein Anmeldeformular zu benötigen. Am Ende habe ich ein kleines Lesezeichen erstellt , das ich meiner Browser-Symbolleiste hinzugefügt habe. Dies ist offensichtlich eine sehr "lokale" Lösung, da das Lesezeichen nur für mich verfügbar ist (oder für jeden, in den ich den Code kopiere), aber es funktioniert auf JEDER Joomla-Site und spart unglaublich viel Zeit. Klicken Sie einfach auf den Link und das Anmeldeformular wird angezeigt (vorausgesetzt, Sie befinden sich auf einer Joomla-Site, natürlich ...).

 javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?option=com_users&view=login") : (location.href = loc+"&option=com_users&view=login");})());
johanpw
quelle