Direkter Abmeldelink

14

Ich weiß, dass ich das Anmelde- / Abmeldeformular über den folgenden Link anzeigen kann:

http://example.com/index.php?option=com_users&view=login

Sobald Sie angemeldet sind, leitet dieser Link den Benutzer zu einer Seite mit einer Abmeldeschaltfläche weiter, auf die geklickt werden muss.

Ist es möglich, einen Link zu erstellen, über den der aktuelle Benutzer direkt abgemeldet wird?

johanpw
quelle

Antworten:

24

Über den folgenden Link können Sie sich direkt abmelden:

http://example.com/index.php?option=com_users&task=user.logout

Ein Benutzertoken ist jedoch erforderlich, um eine Fehlermeldung zu vermeiden Invalid Token, und um das Token abzurufen , ist etwas PHP-Magie erforderlich. Der folgende Code zeigt einen LoginLink zu Gästen und einen direkten Logout UsernameLink zu angemeldeten Benutzern an:

$user = JFactory::getUser();
if ($user->guest)
{
    echo '<a href="index.php?option=com_users&view=login">Login</a>';
}
else
{
    $userToken = JSession::getFormToken();
    echo '<a href="index.php?option=com_users&task=user.logout&' . $userToken . '=1">Logout '  . $user->username . '</a>.';
}

Der Code kann in jede Erweiterung eingefügt werden oder ein Plugin / Modul verwenden, mit dem PHP-Code direkt eingefügt werden kann (z. B. DirectPHP , Custom HTML Advanced , Sourcerer oder ähnliches).

johanpw
quelle
1
Haha, zu offensichtlich ...? Das tut mir leid. Um fair zu sein, finde ich das Code-Snippet ziemlich nützlich und benutze es die ganze Zeit auf Client-Websites, um einen kleinen, nicht aufdringlichen Login-Link in der Fußzeile zu haben. Ich war mir nur nicht sicher, was ich fragen sollte, um den Code zu posten.
Johanpw
+1 Sehr nützlich! Wie können Sie danach eine Weiterleitung zu einer bestimmten Seite vornehmen? Gibt es &additional_parameterwelche, die verwendet werden können, um eine Umleitung nach dem Abmelden zu ermöglichen?
Gruber
Hey, danke dafür! Können Sie eine Dokumentation bereitstellen, in der dies etwas ausführlicher erläutert wird? Vielen Dank!
Gruber
6

Als letzte Antwort hat Joomla einen eingebauten "Logout" -Menüpunkt, der meiner Meinung nach um 3.4 * vielleicht 3.5 erweitert wurde. Jetzt brauchen Sie keine zusätzlichen Plugins.

Der Menüpunkt Abmelden ermöglicht auch eine Umleitung beim Abmelden.

Auch wenn Sie Ihr Login-Menüelement auf "Gast" und Ihr Logout-Menüelement auf "Registrierter" Zugriff einstellen, ändert sich das Menü in Abhängigkeit von Ihrem Status.

Detaillierte SE-Antwort hier: Ändern Sie Login zu Logout

BodgeIT
quelle
Dies ist wahrscheinlich der beste Ansatz für Websites, die eine aktuelle Version von Joomla verwenden, da nur die Kernfunktionalitäten von Joomla verwendet werden. Wenn Sie jedoch wirklich programmgesteuert einen Abmeldelink erstellen müssen, ist die "akzeptierte Antwort" eine gute Lösung.
feculededentier
4

Als dritte Option gibt es eine Quick Logout- Komponente, die einen direkten Logout-Menüpunkt in Joomla hinzufügt und die Benutzer ohne Bestätigung abmeldet.

Es bietet auch die Möglichkeit, die Umleitung nach dem Abmelden auf eine gewünschte Seite einzustellen.

FFrewin
quelle