Предотвращение таймаута сессии

17 сент. 2013 г., 08:13:58
Просмотры: 30.3K
Голосов: 15

Не уверен, является ли это ошибкой или особенностью работы, но это чертовски раздражает. Время от времени, особенно после обновления ядра, находясь в панели администратора, меня выбрасывает с печально известным сообщением "Ваша сессия истекла". Странно само по себе, поскольку WordPress якобы не использует сессии. При входе есть галочка "запомнить меня", почему же система не запоминает? Полагаю, здесь есть различие между "запомнить меня" и "держать меня в системе". Я отключал все плагины, удалял куки, пробовал другие браузеры и даже кричал на свой экран, но меня продолжает выбрасывать из системы.

Устанавливает ли WordPress лимит времени бездействия в панели администратора? Не могли бы вы объяснить, что именно WordPress делает для поддержания пользователей в системе?

2
Комментарии

У меня нет прямого ответа, но, пожалуйста, включите отладку в WordPress, чтобы проверить, нет ли чего-то странного в вашей конкретной установке!

Pothi Kalimuthu Pothi Kalimuthu
17 сент. 2013 г. 08:38:58

@PothiKalimuthu Уже сделал, и я не вижу ничего необычного.

Twifty Twifty
17 сент. 2013 г. 09:11:14
Все ответы на вопрос 2
6
13

По умолчанию WordPress устанавливает срок действия куки-файла сессии входа в систему на 48 часов (или до закрытия браузера), либо на 14 дней, если вы отметили галочку «Запомнить меня».

Возможно, у вас установлены плагины, которые принудительно завершают сессию входа.

Вы можете вручную добавить приведённый ниже код в ваш файл functions.php, чтобы продлить срок действия куки на любое желаемое время. По сути, вы можете вообще отключить автоматический выход из системы WordPress, просто увеличив количество секунд до очень большого числа.

add_filter( 'auth_cookie_expiration', 'keep_me_logged_in_for_1_year' );
function keep_me_logged_in_for_1_year( $expirein ) {
    return YEAR_IN_SECONDS; // 1 год в секундах
}

Или вы также можете использовать этот плагин для изменения временного ограничения: Configure Login Timeout

Надеюсь, это поможет!!

25 апр. 2017 г. 07:09:06
Комментарии

начиная с версии 4.0 (если я правильно помню) WordPress действительно использует отслеживание сессий, и срок действия cookie — лишь частичное объяснение/решение в лучшем случае

Mark Kaplun Mark Kaplun
25 апр. 2017 г. 08:43:50

Обратите внимание, что если вы попробуете этот метод и он не сработает — пользователь при входе должен отметить галочку "запомнить меня", чтобы это вступило в силу. В противном случае cookie будет действовать только до окончания сессии браузера.

Nathan Nathan
7 апр. 2020 г. 22:43:30

Используйте WordPress-константу YEAR_IN_SECONDS

Andrew Schultz Andrew Schultz
12 мая 2020 г. 10:03:07

Это до сих пор работает? В 2021 году?

Mukeshwar Singh Mukeshwar Singh
16 мар. 2021 г. 13:46:14

@MukeshwarSingh не публикуйте комментарии в виде полных ответов, антиспам-система автоматически заблокирует вас. Я переместил ответ в комментарии, но 1 репутация — не оправдание. У вас уже есть автоматическое предупреждение на аккаунте из-за этого.

Tom J Nowell Tom J Nowell
16 мар. 2021 г. 14:10:03

У плагина Configure Login Timeout всего несколько отзывов, и некоторые говорят, что он вызывает проблемы. Есть другой configure-login-timeout, у которого тоже мало отзывов, но он, похоже, не обновлялся несколько лет, так что тоже рискованный.

O'Rooney O'Rooney
17 нояб. 2021 г. 03:20:40
Показать остальные 1 комментариев
1

Это код, который я добавил в дочернюю тему, чтобы пользователи оставались авторизованными на моём сайте в течение 2 недель:

add_filter(‘auth_cookie_expiration’, 

‘keep_me_logged_in_for_2_week’ );

function keep_me_logged_in_for_2_week( $expirein ) {

return WEEK_IN_SECONDS; // 2 недели в секундах

}
6 янв. 2022 г. 15:29:58
Комментарии

Но WEEK_IN_SECONDS — это одна неделя, а не две.

Rup Rup
13 янв. 2022 г. 00:49:05