Collegamento per il logout diretto


14

So di poter visualizzare il modulo di login / logout con il seguente link:

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

Ma una volta effettuato l'accesso, questo collegamento reindirizzerà l'utente a una pagina con un pulsante di disconnessione a cui è necessario fare clic.

È possibile creare un collegamento che disconnetterà direttamente l'utente corrente?

Risposte:


24

Il seguente link è per il logout diretto:

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

Ma è richiesto un token utente per evitare un messaggio di errore Invalid Token, e un po 'di magia PHP è richiesto per ottenere il token. Il codice seguente mostrerà un Logincollegamento agli ospiti e un Logout Usernamecollegamento diretto agli utenti che hanno effettuato l'accesso:

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

Il codice può essere incluso in qualsiasi estensione o utilizzando un plug-in / modulo che consente di inserire direttamente il codice PHP (ad esempio DirectPHP , Custom HTML Advanced , Sourcerer o simile).


1
Haha, troppo ovvio ...? Mi dispiace per quello. Ad essere sinceri, tuttavia, trovo lo snippet di codice abbastanza utile e lo utilizzo sempre sui siti Web dei clienti per avere un piccolo link di accesso non intrusivo nel piè di pagina. Non ero sicuro di cosa chiedere per pubblicare il codice.
johanpw,

+1 estremamente utile! Come puoi effettuare un reindirizzamento a una pagina specifica dopo di essa? ce ne sono alcuni &additional_parameterche possono essere utilizzati per consentire un reindirizzamento dopo il logout?
Gruber,

Ehi, grazie per questo! Potete fornire della documentazione in cui questo è spiegato un po 'più in dettaglio? Grazie!
Gruber,


6

Come risposta finale, Joomla ha una voce di menu "Logout" integrata, aggiunta al core penso intorno a 3.4 * forse 3.5. Quindi ora non hai bisogno di plugin aggiuntivi.

La voce di menu di logout consente anche un reindirizzamento al logout.

Inoltre, se si imposta la voce di menu Login su Accesso "Ospite" e la voce di menu Logout su Accesso "Registrato", il menu cambia in base al proprio stato.

Risposta SE dettagliata qui: Cambia l'accesso in Logout


Questo è probabilmente l'approccio migliore per i siti Web che utilizzano una versione aggiornata di Joomla poiché utilizza solo le funzionalità principali di Joomla. Se è necessario creare a livello di codice un collegamento di disconnessione, tuttavia, la "risposta accettata" è una buona soluzione.
feculededentier,

4

Come terza opzione, c'è un componente Logout rapido che aggiunge una voce di menu di logout diretto in Joomla e disconnetterà gli utenti senza la conferma.

Fornisce inoltre l'opzione per impostare il reindirizzamento su una pagina desiderata dopo il logout.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.