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?

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).


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


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


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.