Прямая ссылка выхода


14

Я знаю, что могу отобразить форму входа / выхода со следующей ссылкой:

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

Но после входа в систему эта ссылка перенаправит пользователя на страницу с кнопкой выхода из системы, на которую нужно нажать.

Можно ли создать ссылку, которая будет выходить из системы текущего пользователя напрямую?

Ответы:


24

Следующая ссылка для прямого выхода из системы:

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

Но пользовательский токен необходим для того, чтобы избежать сообщения об ошибке Invalid Token, а для получения токена требуется некоторое волшебство PHP. Следующий код будет отображать Loginссылку для гостей и прямую Logout Usernameссылку для зарегистрированных пользователей:

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

Код может быть включен в любое расширение или с помощью плагина / модуля, который позволяет вставлять PHP-код напрямую (например, DirectPHP , Custom HTML Advanced , Sourcerer или аналогичный).


1
Ха-ха, слишком очевидно ...? Прости за это. Однако, если честно, я считаю фрагмент кода весьма полезным и все время использую его на клиентских веб-сайтах, чтобы иметь небольшую, ненавязчивую ссылку для входа в нижний колонтитул. Я просто не знал, что спросить, чтобы опубликовать код.
Johanpw

+1 Очень полезно! Как вы можете сделать перенаправление на определенную страницу после нее? Есть ли некоторые, &additional_parameterкоторые можно использовать, чтобы разрешить перенаправление после выхода из системы?
Грубер

Привет, спасибо за это! Можете ли вы предоставить некоторую документацию, где это объясняется немного подробнее? Спасибо!
Грубер


6

В качестве окончательного ответа, у Joomla есть встроенный пункт меню «Выход», добавленный в ядро, я думаю, около 3.4 *, может быть, 3.5. Так что теперь вам не нужны дополнительные плагины.

Пункт меню выхода также позволяет перенаправить при выходе из системы.

Кроме того, если вы установите для пункта меню «Вход» значение «Гостевой», а для пункта меню «Выход» - «Зарегистрированный», меню изменится в зависимости от вашего статуса.

Подробный ответ SE здесь: Изменить Войти на Выход


Это, вероятно, лучший подход для веб-сайтов, использующих актуальную версию Joomla, поскольку он использует только основные функциональные возможности Joomla. Однако если вам действительно нужно программно создать ссылку для выхода из системы, «принятый ответ» - это хорошее решение.
feculededentier

4

В качестве третьего варианта есть компонент быстрого выхода из системы, который добавляет пункт меню прямого выхода из системы в Joomla и будет выводить пользователей из системы без подтверждения.

Он также предоставляет возможность установить перенаправление на нужную страницу после выхода из системы.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.