Tautan logout langsung

14

Saya tahu saya bisa menampilkan formulir masuk / keluar dengan tautan berikut:

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

Namun begitu login, tautan ini akan mengarahkan pengguna ke halaman dengan tombol logout yang harus diklik.

Apakah mungkin membuat tautan yang akan langsung keluar dari pengguna saat ini?

johanpw
sumber

Jawaban:

24

Tautan berikut adalah untuk keluar langsung:

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

Tetapi token pengguna diperlukan untuk menghindari pesan kesalahan Invalid Token, dan beberapa keajaiban PHP diperlukan untuk mendapatkan token. Kode berikut akan menampilkan Logintautan ke tamu, dan Logout Usernametautan langsung ke pengguna yang masuk:

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

Kode dapat dimasukkan dalam ekstensi apa pun, atau menggunakan plugin / modul yang memungkinkan memasukkan kode PHP secara langsung (misalnya DirectPHP , Custom HTML Advanced , Sourcerer atau yang serupa).

johanpw
sumber
1
Haha, terlalu jelas ...? Maaf soal itu. Agar adil, saya menemukan potongan kode yang cukup berguna, dan menggunakannya sepanjang waktu di situs web klien untuk memiliki tautan masuk kecil yang tidak mengganggu di catatan kaki. Saya hanya tidak yakin tentang apa yang harus ditanyakan untuk memposting kode.
johanpw
+1 Sangat bermanfaat! Bagaimana Anda bisa membuat redirect ke halaman tertentu setelah itu? apakah ada beberapa &additional_parameteryang dapat digunakan untuk memungkinkan pengalihan setelah keluar?
Gruber
Hai, terima kasih untuk ini! Bisakah Anda memberikan beberapa dokumentasi di mana ini dijelaskan sedikit lebih detail? Terima kasih!
Gruber
7

Sudah ada plugin yang berfungsi bagus untuk tombol logout.

Anda harus memeriksa tombol logout ekstensi ini

Nick
sumber
6

Sebagai jawaban terakhir, Joomla memiliki item menu "Logout" bawaan, yang ditambahkan ke inti Saya pikir sekitar 3,4 * mungkin 3,5. Jadi sekarang Anda tidak memerlukan plugin tambahan.

Item menu logout juga memungkinkan pengalihan saat logout.

Juga jika Anda mengatur item menu Login Anda menjadi akses 'Tamu' dan item menu Keluar Anda menjadi akses 'Terdaftar', menu berubah tergantung pada status Anda.

Detail jawaban SE di sini: Ubah Login ke Logout

BodgeIT
sumber
Ini mungkin merupakan pendekatan terbaik untuk situs web yang menggunakan versi Joomla terbaru karena hanya menggunakan fungsionalitas inti Joomla. Namun, jika Anda benar-benar perlu membuat tautan logout secara program, "jawaban yang diterima" adalah solusi yang baik.
feculededentier
4

Sebagai opsi ketiga, ada a komponen Quick Logout yang menambahkan item menu logout langsung di Joomla dan akan logout pengguna tanpa konfirmasi.

Ini juga menyediakan opsi untuk mengatur pengalihan ke halaman yang diinginkan setelah logout.

FFrewin
sumber