Link de logout direto

14

Sei que posso exibir o formulário de logon / logout com o seguinte link:

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

Porém, uma vez logado, esse link redirecionará o usuário para uma página com um botão de logout que deve ser clicado.

É possível criar um link que efetue logout do usuário atual diretamente?

johanpw
fonte

Respostas:

24

O link a seguir é para logout direto:

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

Mas é necessário um token de usuário para evitar uma mensagem de erro Invalid Token, e alguma mágica do PHP é necessária para obter o token. O código a seguir exibirá um Loginlink para convidados e um Logout Usernamelink direto para usuários conectados:

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

O código pode ser incluído em qualquer extensão ou usando um plug-in / módulo que permita a inserção direta do código PHP (por exemplo , DirectPHP , Custom HTML Advanced , Sourcerer ou similar).

johanpw
fonte
1
Haha, muito óbvio ...? Me desculpe por isso. Para ser justo, porém, acho o trecho de código bastante útil e o uso o tempo todo nos sites dos clientes para ter um pequeno link de login não intrusivo no rodapé. Só não tinha certeza do que perguntar para postar o código.
johanpw
+1 Extremamente útil! Como você pode redirecionar para uma página específica depois dela? existe algum &additional_parameterque possa ser usado para permitir um redirecionamento após o logout?
Gruber
Olá, obrigado por isso! Você pode fornecer alguma documentação onde isso é explicado um pouco mais detalhadamente? Obrigado!
Gruber
7

Já existe um plugin que funciona muito bem para o botão de logout.

Você deve verificar este botão de logout de extensão

usuario
fonte
6

Como resposta final, o Joomla possui um item de menu "Logout" embutido, adicionado ao núcleo, penso em 3,4 * talvez 3,5. Então agora você não precisa de plugins adicionais.

O item de menu logout também permite redirecionar o logout.

Além disso, se você definir o item do menu Login como acesso 'Convidado' e o item do menu Logout como acesso 'Registrado', o menu mudará dependendo do seu status.

Resposta SE detalhada aqui: Alterar Login para Logout

BodgeIT
fonte
Esta é provavelmente a melhor abordagem para sites que usam uma versão atualizada do Joomla, pois ele usa apenas as principais funcionalidades do Joomla. Se você realmente precisar criar programaticamente um link de logout, no entanto, a "resposta aceita" é uma boa solução.
feculededentier 4/10/16
4

Como terceira opção, existe um componente Logout Rápido que adiciona um item de menu de logout direto no Joomla e efetua logout dos usuários sem a confirmação.

Ele também fornece a opção de definir o redirecionamento para uma página desejada após o logout.

FFrewin
fonte