Авторизация и механика чекбокса "запомнить меня" Есть решение

Тех. поддержка отфутболила сюда, вразумительного ответа от них добиться не смог.

Вопрос по механике работы чекбокса "запомнить меня". Мои ожидания по его работе следующие: если checked, то сессия авторизации хранится сколько угодно долго не зависимо от настройки php session.gc_maxlifetime сервера? Или у меня завышенные ожидания?

В чем разница состояний этого чекбокса?

Проблема описана была уже многими в разделе помощь, например в этой теме: https://support.webasyst.ru/fo...

3 ответа

  • 1
    Den 9 мая 2020 13:06 #

    Такой ответ получил от тех поддержки:

    "Если эта галочка есть, то в браузер устанавливается cookie с токеном авторизации на месяц, иначе - только на текущую сессию.

    Работа механизма связанна с сессиями php, но прежде всего для неавторизованных пользователей, в этом случае работает session.gc_maxlifetime"

    Я это понимаю так, что для авторизованного пользователя с отмеченной галочкой "запомнить меня" session.gc_maxlifetime ни на что не влияет. Поправьте если я ошибаюсь.

  • 1
    Den 9 мая 2020 13:53 #

    Стал ковырять и нашел баг на стороне авторизации вебасиста.

    1) Форма авторизации на витрине /login/

    При отправке формы с галочкой "запомнить меня" видим что отправляет два значения remember 1 и 0 

    Стали искать откуда - выяснилось что в форме авторизации вебасиста два инпута с одинаковым атрибутом name="remember", один из них hidden

    Он и перезатирает то что выбирает пользователь.

    2) Форма авторизации в бекенде /webasyst/
    Там тоже самое только порядок инпутов обратный

    <input type="hidden" name="remember" value="0">
    <input type="checkbox" name="remember" value="1">
    Remember me

    Поэтому input hidden не перезатирает значение пользовательского

    Вот такие дела, зато на 200млн плагинов напродавали))))) Кайф.

  • 1
    Den 9 мая 2020 15:12 # Решение

    С формой на витрине(/login/) - разобрался, там порядок меняла кастомная тема. В обычной теме порядок этих инпутов как и в бэкенде.

    Странное конечно решение с двумя инпута с идентичными аттрибутами - выглядит как костыль, но вроде работает. Претензии снимаются.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите