Доступ запрещен на странице сброса пароля при входе в систему
Вопрос
Я запускаю сайт D7, который по какой-то причине не позволяет пользователям сбрасывать свои пароли, но только на сервере.Электронное письмо со ссылкой для одноразового входа отправляется нормально, но когда пользователь нажимает на ссылку, он получает страницу 403 с общим сообщением «Вы не авторизованы для доступа к этой странице».Я знаю, что это зависит от среды сервера, потому что с клоном сайта на моем локальном компьютере (отправка электронной почты с использованием модуля SMTP) все работает нормально.Я предполагаю, что проблема возникает в user_edit_access(), где он сравнивает значение $account->uid с $GLOBALS['user']->uid, но на данный момент это всего лишь предположение.
Есть какие-нибудь предложения относительно того, в чем может быть проблема?Серверы используют Varnish, поэтому такая мысль пришла мне в голову, но я не знаю, как это понять.
Спасибо.
Решение
Прокомментируйте /* $cookie_domain = $_SERVER['HTTP_HOST']; */
из settings.php по пути \sites\defaults вам подойдет.
или используйте приведенный ниже код в settings.php:
<?php
/**
* Drupal automatically generates a unique session cookie name for each site
* based on its full domain name. If you have multiple domains pointing at the
* same Drupal site, you can either redirect them all to a single domain (see
* comment in .htaccess), or uncomment the line below and specify their shared
* base domain. Doing so assures that users remain logged in as they cross
* between your various domains. Make sure to always start the $cookie_domain
* with a leading dot, as per RFC 2109.
*/
$cookie_domain = '.your_domain.com';
$conf['https'] = TRUE;
?>
На сайтах с анонимными пользователями удобно не устанавливать это, чтобы вы входили в систему как администратор на одной вкладке и анонимно на другой, не используя «www» на одной из них.