Link do bezpośredniego wylogowania

14

Wiem, że mogę wyświetlić formularz logowania / wylogowania z następującym linkiem:

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

Ale po zalogowaniu ten link przekieruje użytkownika na stronę z przyciskiem wylogowania, który należy kliknąć.

Czy można utworzyć link, który wyloguje bezpośrednio bieżącego użytkownika?

johanpw
źródło

Odpowiedzi:

24

Poniższy link służy do bezpośredniego wylogowania:

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

Ale token użytkownika jest wymagany, aby uniknąć komunikatu o błędzie Invalid Token, a do uzyskania tokena wymagana jest magia PHP. Poniższy kod wyświetli Loginlink do gości oraz bezpośredni Logout Usernamelink do zalogowanych użytkowników:

$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>.';
}

Kod może być zawarty w dowolnym rozszerzeniu lub za pomocą wtyczki / modułu, który umożliwia bezpośrednie wstawianie kodu PHP (np. DirectPHP , Custom HTML Advanced , Sourcerer lub podobny).

johanpw
źródło
1
Haha, zbyt oczywiste ...? Przepraszam za to. Szczerze mówiąc, uważam, że fragment kodu jest bardzo przydatny i używam go cały czas w witrynach klienckich, aby mieć w stopce mały, nieinwazyjny link logowania. Po prostu nie byłem pewien, o co zapytać, aby opublikować kod.
johanpw
+1 Niezwykle przydatne! Jak zrobić przekierowanie na określoną stronę po nim? czy są takie, &additional_parameterktóre można wykorzystać, aby umożliwić przekierowanie po wylogowaniu?
Gruber
Cześć, dzięki za to! Czy możesz podać dokumentację, w której wyjaśniono to nieco bardziej szczegółowo? Dziękuję Ci!
Gruber,
7

Jest już wtyczka, która działa świetnie dla przycisku wylogowania.

Powinieneś sprawdzić ten przycisk wylogowania z rozszerzenia

Nacięcie
źródło
6

Ostateczna odpowiedź: Joomla ma wbudowane menu „Wyloguj”, dodane do rdzenia, myślę, że około 3,4 * może 3,5. Więc teraz nie potrzebujesz żadnych dodatkowych wtyczek.

Pozycja menu wylogowania pozwala również na przekierowanie przy wylogowaniu.

Również jeśli ustawisz element menu logowania na dostęp „Gość”, a element menu wylogowania na dostęp „Zarejestrowany”, menu zmieni się w zależności od twojego statusu.

Szczegółowa odpowiedź SE tutaj: Zmień login na wylogowanie

BodgeIT
źródło
Jest to prawdopodobnie najlepsze podejście dla stron internetowych korzystających z aktualnej wersji Joomla, ponieważ wykorzystuje ona tylko podstawowe funkcje Joomla. Jeśli jednak naprawdę chcesz programowo utworzyć łącze wylogowania, dobrym rozwiązaniem jest „zaakceptowana odpowiedź”.
feculededentier
4

Trzecią opcją jest komponent szybkiego wylogowania , który dodaje pozycję menu bezpośredniego wylogowania w Joomla i wylogowuje użytkowników bez potwierdzenia.

Zapewnia również opcję ustawienia przekierowania na żądaną stronę po wylogowaniu.

FFrewin
źródło