2013-04-12 2 views
0

Боюсь, я не могу решить эту проблему самостоятельно. Странно, что эта проблема кажется уникальной для моей установки.WordPress - автоматический выход из системы при использовании разных браузеров/IP

На моем веб-сайте, основанном на WordPress, возникают проблемы с входом в систему, особенно при использовании своих мобильных телефонов для аутентификации: они выходят из системы (даже при проверке «Запомнить меня») и вам придется повторно ввести свои учетные данные (после чего они снова выходят из системы). Из того, что я понял, скорее всего, тот факт, что их соответствующие поставщики мобильного интернет-сервиса динамически назначают новые IP-адреса своим устройствам все время, что приводит к сбою аутентификации.

Когда я использую свой рабочий стол для входа в систему, все будет работать нормально. Однако, скажем, я успешно вошел на сайт с Google Chrome, и я открываю экземпляр Mozilla Firefox (или любого другого браузера) для входа в систему одновременно, пользовательский «сеанс» пользователя Chrome будет немедленно отключен (я знаю это потому, что асинхронный скрипт запрашивает, вошел ли пользователь в систему, и он предлагает мне войти в систему после входа в систему, используя другой браузер). Поэтому я считаю, что вся аутентификация WordPress также имеет какое-то отношение к пользовательскому агенту.

Несмотря на то, что я высоко ценю дополнительный объем обеспечения, обеспечиваемый автоматически отменой выполняемого сеанса при доступе к сайту с другого IP-адреса или браузера, мои пользователи этого не делают. Даже для меня это невероятно громоздко, используя три разные машины, а также планшет и телефон для доступа к сайту из любого возможного места (в конце концов я перестал беспокоиться о регистрации и просто ждал, чтобы вернуться домой).

Поскольку аутентификация WordPress использует куки-файлы, я изучил, как они сгенерированы. Метод wp_generate_auth_cookie() использует имя пользователя, его хэш-пароль, время истечения и соль (постоянная соль, определенная в wp-config.php), но также не использует IP-адрес или пользовательский агент. Я буквально искал всю папку WordPress для появления «пользовательского агента» или «IP-адреса», но нет сценария, связанного с входом в систему, содержащего термины (всего лишь несколько плагинов, которые вообще не влияют на сеанс пользователя).

Это меня озадачивает. Как WordPress даже понимает, что я вошел в систему с другим браузером/компьютером, если он не хранит эти данные в cookie аутентификации? И где происходит проверка, которая регистрирует меня и моих пользователей?

Есть ли у вас какие-либо дальнейшие идеи по устранению проблемы?

спасибо, что заблаговременно !!

Harti

ответ

1

Куки хранятся в браузерах и различных браузеров на той же машине, не разделяют эту память. Таким образом, при входе в Chrome, WP отправляет cookie для входа в Chrome, начиная новый сеанс. Когда вы получаете доступ к сайту с помощью Firefox, у FF нет файла cookie для входа, поэтому WP предложит вам войти в систему, а затем отправит файл cookie для входа в FF, а также начнет новый сеанс. В следующий раз, когда вы заходите на сайт с помощью Chrome, он получает cookie для входа в Chrome, который не соответствует последнему, отправленному с вашим именем пользователя, поэтому все начинается снова и снова.

Это не напрямую объясняет проблему с мобильными устройствами; похоже, по какой-то причине они не хранят файлы cookie должным образом.

+0

Интересно, почему WordPress знает, что он отправил новый файл cookie в другой браузер - возможно, из-за нового срока действия. Однако при аутентификации файла cookie я не могу найти никакого сравнения с базой данных или чем-то - где могут храниться эти данные? – Harti

Смежные вопросы