Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 1133 Просмотров
*

interregional

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Кнопка для сброса сессии
« : 26.03.2018, 10:20:23 »
Доброго времени суток!
В общем использую не стандартный плагин для аутенфикации который лимитирует (LoginOne!) единовременно доступных сессий на аккаунт. Хочу сделать в поле алерта с ошибкой о том что мол уже вошли в акк с другого устройства (то бишь используется уже сессия) кнопку сбрасывающая сессию конкретно этому пользователю.
Вот только PHP я не учил и пока смотрю разбираюсь, но сложно... будьте так добры, подскажите как сие совершить.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Кнопка для сброса сессии
« Ответ #1 : 26.03.2018, 11:11:12 »
т.е. чтобы именно тот пользователь, который вошел, мог сбросить свою вторую (предыдущую) сессию? или админ мог сбросить?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

interregional

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: Кнопка для сброса сессии
« Ответ #2 : 26.03.2018, 11:17:46 »
чтобы именно тот пользователь, который вошел
Почти, на данный момент пользователь не входит, ему выдает ошибку мол уже есть активная сессия, вот и я хочу в это сообщение с ошибкой вставить ссылку которая будет очищать в БД строку с его сессией.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Кнопка для сброса сессии
« Ответ #3 : 26.03.2018, 11:46:58 »
Почти, на данный момент пользователь не входит, ему выдает ошибку мол уже есть активная сессия, вот и я хочу в это сообщение с ошибкой вставить ссылку которая будет очищать в БД строку с его сессией.
:o Как система узнала, что это он, если он еще не вошел? У вас какая-то супер умная версия Joomla?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

lexxbry

  • Живу я здесь
  • 2387
  • 67 / 8
Re: Кнопка для сброса сессии
« Ответ #4 : 26.03.2018, 11:48:21 »
:o Как система узнала, что это он, если он еще не вошел? У вас какая-то супер умная версия Joomla?
я так понимаю что пользователь пытается войти под своим логином паролем и ему выдает что сессия уже открыта
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Кнопка для сброса сессии
« Ответ #5 : 26.03.2018, 11:49:09 »
угу, я так понял при попытке входа
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

interregional

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: Кнопка для сброса сессии
« Ответ #6 : 26.03.2018, 12:17:09 »
Как система узнала, что это он, если он еще не вошел
Даже мне понятно как это проиходит - ввод логина и пароля > чек логина и пароля в БД > если совпадает тогда чек сессии > сессия уже есть > выдаем ошибку

Вот собственно участок где вроде как и происходит проверка сессии
Код
if ($session_result && ($strict_mode || !isset($_COOKIE[JApplication::getHash('PLG_LOGIN_ONE_PLUGIN'.$user->username)]))) {    // user is already logged in, and has not ended previous session by just closing browser, i.e. without logging off. When cookie is set, below code section is skipped. When strict_mode is set, user is not allowed multiple log-in from same work station.
               
                    if ($user_group_id !== "8") {    // exclude super user group_id 8

                        // The Joomla! 'remember me' option and some applications store user
                        // credentials in a persistent cookie, even if the application parameters
                        // have been set not to use 'remember me'.
                        // If Login One! forces a log-out, this cookie leads to browser getting
                        // into a loop, trying to re-establish earlier session but not allowed
                        // by Login One! etc etc.
                        // So we need to make sure the 'remember me' cookie is deleted.
                        // As of J3.2 the remember me cookie is named as follows
                        $remember_me_cookie_name  = JUserHelper::getShortHashedUserAgent();
                        if(isset($_COOKIE[$remember_me_cookie_name])) {
                           
                            // decided not to save this cookie into a temp cookie before
                            // deleting it, because it leads to confusing/unpredictable
                            // shopping cart contents when switching between work stations.

                            // delete the 'remember me' cookie
                            setcookie($remember_me_cookie_name, false, time() - 42000, $cookie_path, $cookie_domain);
                        }

                        JError::raiseNotice('SOME_ERROR_CODE', JText::_('NOTIFICATION_CANNOT_LOGIN'));

                        // log-in denied. redirect
                        $mainframe->redirect($redirect_to_referrer_url);
                    }
                    else {
                        // user is allowed in
                        // always set this cookie.
                        // if there is no cookie yet, then value this one 1, else 2
                        if ( !isset($_COOKIE[JApplication::getHash('PLG_LOGIN_ONE_PLUGIN'.$user->username)]) ) {
                            $cookie_value = 1;
                        }
                        else {
                            $cookie_value = 2;
                        }
                        setcookie(JApplication::getHash('PLG_LOGIN_ONE_PLUGIN'.$user->username), $cookie_value, time()+$session_lifetime*60, $cookie_path, $cookie_domain);
                    }
                }
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Кнопка для сброса сессии
« Ответ #7 : 26.03.2018, 12:32:16 »
ОК, в таком случае надо понять, на каком этапе пользователя не впускает. Если на событии onUserLogin, то, IMHO, вам достаточно в плагине User - Joomla! поставить кнопку "Force Logout for all Sessions?" на "Yes".
P.S. Пока писал, не увидел
Вот собственно участок где вроде как и происходит проверка сессии
Похоже, что это происходит на onUserAuthenticate и без дополнительного кода вам не обойтись.
« Последнее редактирование: 26.03.2018, 12:53:06 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

interregional

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Re: Кнопка для сброса сессии
« Ответ #8 : 26.03.2018, 13:34:58 »
в плагине User - Joomla! поставить кнопку "Force Logout for all Sessions?" на "Yes".
Спасибо за ответ, не могли бы Вы уточнить еще кое-что. Я так понимаю что при стандартном плагине аунтификации можно выставить так что при входе выкидывало из других сессий?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Кнопка для сброса сессии
« Ответ #9 : 26.03.2018, 13:44:29 »
Я так понимаю что при стандартном плагине аунтификации можно выставить так что при входе выкидывало из других сессий?
Не совсем так. Это можно сделать только при выходе пользователя.
Не будь паразитом, сделай что-нибудь самостоятельно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Кнопка «Наверх»: как создать с CSS и jQuery

Автор leo78

Ответов: 4
Просмотров: 1478
Последний ответ 25.06.2021, 13:01:58
от leo78
Пропала кнопка Обзор файлов в модуле Nexevo Contact

Автор natalyaegorova

Ответов: 0
Просмотров: 1043
Последний ответ 28.06.2017, 10:31:59
от natalyaegorova
Module mod_roksprocket кнопка "Read More" как перевести?

Автор foyus

Ответов: 12
Просмотров: 11333
Последний ответ 04.05.2016, 12:12:54
от Tavol
Не работает кнопка вверх Joomlamix

Автор Bismuth

Ответов: 6
Просмотров: 1772
Последний ответ 07.07.2015, 22:22:18
от Bismuth
News Show Pro GK5 - не выводится кнопка "Подробнее"

Автор webdiletant

Ответов: 0
Просмотров: 1081
Последний ответ 19.01.2015, 13:39:17
от webdiletant