Привет! Я искал ответ на эту проблему, но ничего не нашёл. Я администратор нашего форума и обычно вхожу через авторизацию Google. Я хотел изменить свой адрес электронной почты и начал этот процесс со страницы настроек. Первое письмо с подтверждением пришло на мой текущий адрес, я его подтвердил — пока всё в порядке, и система сообщила, что второе письмо с подтверждением будет отправлено на новый адрес. Второе письмо действительно пришло на новый адрес, но при переходе по ссылке подтверждения в браузере появляется следующее сообщение:
Ой! Эта страница не существует или закрыта.
В результате мой старый адрес электронной почты по-прежнему остаётся активным в моём аккаунте.
У меня, возможно, похожая ситуация. Я администратор нашего форума. Я изменил адрес электронной почты, получил письмо с подтверждением — пока всё в порядке. Когда я вернулся на форум, меня автоматически авторизовали. Я проверил свои настройки: рассылка с форума настроена на мой новый адрес, однако… для входа используется тот же адрес, что был при первоначальной регистрации. Я провёл проверку и выяснил, что входить в учётную запись администратора нужно с тем же адресом, который использовался при первой регистрации. Если полностью выйти из системы и попытаться войти снова с моим «новым» адресом, появляется то же сообщение об ошибке, что и у вас.
Проверьте свои настройки, чтобы убедиться, что адрес для получения писем с форума установлен на ваш новый адрес. Скорее всего, так и есть. Но я почти уверен, что адрес для входа в систему всё ещё указан тот, который вы использовали при первоначальной настройке учётной записи администратора.
Возможно, @dax или другой член команды сможет объяснить, является ли это ожидаемым поведением или же адрес входа администратора нужно сбрасывать другим способом.
Я протестировал процесс изменения адреса электронной почты администратора на последней версии Discourse, прошедшей все тесты. У меня была настроена аутентификация через Google в дополнение к обычным учетным данным. Я проводил тесты в двух разных браузерах (Safari и Chrome), и всё работает так, как я и ожидал.
Я также проверил это на сайте Discourse, который находится на коммите примерно 11-дневной давности. У этой учетной записи администратора была настроена стандартная аутентификация с включенной двухфакторной аутентификацией (2FA). Процесс немного изменился с момента этого коммита, но всё ещё работает корректно.
Если кто-то продолжает сталкиваться с этой проблемой на сайте Discourse, который полностью обновлен, пожалуйста, опубликуйте пошаговую инструкцию по воспроизведению ошибки, а также укажите все соответствующие детали браузера (версия, ОС, используется ли браузер по умолчанию или установлены плагины). Если ваш сайт размещён у нас и проблема возникает прямо сейчас, обратитесь через обычный канал поддержки, и мы напрямую поможем вам разобраться в ситуации.
В своей панели управления я изменил адрес электронной почты на новый.
Я получил письмо от программного обеспечения форума, перешел по ссылке для подтверждения.
При проверке панели управления мой адрес электронной почты изменился на новый. Это отображается в разделе Оплата.
На мой новый адрес также приходят уведомления о новых темах/сообщениях.
Однако в моих Настройках пользователя/Аккаунте (для входа в систему) по-прежнему отображается исходный адрес электронной почты, использованный при создании форума.
Я отредактировал адрес электронной почты там, указав новый.
Нажал Сохранить изменения и вышел.
Позже я перепроверил, и снова отображался исходный адрес электронной почты.
При каждом входе в систему сообщение о входе указывает использовать адрес, использованный для настройки Discourse. Поэтому я не стал сообщать об этом, считая, что это мера безопасности. Кроме того, на мой новый адрес электронной почты приходят все необходимые уведомления: о новых темах, квитанции об оплате и т. д.
(Кстати, у меня все еще есть доступ к моему старому почтовому ящику.)
Извините, мы не обсуждали хостинг электронной почты. Мы говорили о пользователях (в частности, администраторах), которые инициируют изменение адреса электронной почты в своей учетной записи через ту же страницу редактирования учетной записи, которую видят все пользователи при смене своего адреса электронной почты.
Именно в этом заключается моя проблема. Я являюсь администратором, но не могу изменить адрес на этой странице. Я перехожу в настройки своей учётной записи, меняю адрес электронной почты, нажимаю «Сохранить», получаю уведомление о том, что письмо для подтверждения отправлено, и закрываю страницу. Когда я перехожу по ссылке и попадаю на экран входа, ввожу новый адрес электронной почты, но получаю уведомление о том, что нужно войти с использованием адреса, указанного при первоначальной регистрации. Смена адреса электронной почты так и не была сохранена — всё вернулось к исходному адресу, по которому я регистрировался.
С другой стороны, если я буду использовать адрес электронной почты от другого домена, который мне принадлежит, вместо адреса с тем же доменом, что и у форума, тогда это сработает? В любом случае, для меня это не проблема. Я могу оставить всё как есть.
Я отключил аутентификацию Google, на случай если это было частью проблемы. Для воспроизведения я записал 94-секундное видео с демонстрацией моих действий:
@David_Baker1, спасибо за то, что нашли время собрать это видео. Я посмотрел его и внимательно следовал инструкциям в Chrome. Всё сработало безупречно, значит, в вашей среде что-то уникальное. Вот несколько вопросов для размышления:
Есть ли в разделе /logs вашего сайта какие-либо ошибки, которые кажутся релевантными?
Установлены ли у вас расширения браузера Chrome? Если да, попробуйте выполнить ту же процедуру в другом браузере.
Установлены ли у вас какие-либо неофициальные плагины Discourse?
Если когда-нибудь это действительно станет проблемой, не стесняйтесь написать нам письмо, и мы постараемся решить её напрямую для вас. Это первое, что я слышу о проблеме, которую вы описываете.
Хм, как странно! Похоже, ваша настройка вполне стандартная. Как только у меня появится возможность на следующей неделе, я ещё раз всё проверю, используя несколько свежих идей. В остальном же я не знаю, что ещё предложить, так как не могу воспроизвести проблему.
Привет снова — после более тщательного поиска я нашёл кое-что, что может указывать на причину. В моих настройках аккаунта/предпочтениях мой адрес электронной почты указан как тот, от которого я хочу отказаться. Но если я нажму на кнопку «Администратор» в правом верхнем углу этого экрана и прокручу вниз до раздела настроек SSO, там будет указан адрес электронной почты, на который я хочу перейти. Это тот адрес, который я использовал ещё тогда, когда мы впервые настраивали Discourse. Впоследствии я сменил работу и обновил адрес электронной почты в своём аккаунте. Но теперь я хочу вернуть старый.
Похоже, что с моим аккаунтом сейчас связаны два разных адреса электронной почты.
Может ли это указывать на возможную причину данной проблемы?
Адрес электронной почты, который вы пытаетесь установить, может уже быть «дополнительным» адресом вашей учётной записи. В этом случае вам нужно удалить дополнительный адрес электронной почты, прежде чем сможете обновить основной адрес.
Как администратор сайта, вы можете подтвердить, что этот адрес является дополнительным, перейдя на страницу администрирования и нажав кнопку «Показать» для строки «Дополнительные адреса электронной почты»:
У меня точно такая же ситуация. В панели администратора мой адрес электронной почты отображается как тот, на который я хотел перейти, но в моих пользовательских предпочтениях он застрял на исходном адресе, который я использовал для первого входа. У меня также есть два разных адреса электронной почты, связанных с моим аккаунтом… или пользователь и администратор считаются двумя разными аккаунтами?
Я только что проверил еще раз. В панели администратора у меня не отображается никакой вторичный адрес электронной почты.
Чтобы убедиться, что проблема не в этом, подтвердите, пожалуйста, что вы являетесь администратором сайта. Модераторы не увидят поля для электронной почты, пока не включена настройка «Модераторы видят адреса электронной почты». По умолчанию она отключена.
Если у вас есть доступ к консоли Rails для вашего сайта, вы можете проверить, используется ли адрес электронной почты, на который вы пытаетесь обновиться, выполнив следующую команду с этим адресом:
UserEmail.where(email: 'youremail@example.com')
Если на вашем сайте установлен плагин Data Explorer, вы можете проверить это с помощью запроса Data Explorer, не обращаясь к консоли.
Если будут возвращены какие-либо результаты, это и будет причиной проблемы. Однако наличие адреса электронной почты, на который вы пытаетесь обновиться, в записи единого входа (Single Sign On) не должно вызывать никаких проблем.
РЕДАКТИРОВАНО: Нашёл. user_notifications.confirm_new_email.text_body_template переопределял URL.
Можно игнорировать остальное.
Привет, Саймон. Спасибо за помощь.
Вот в чём проблема:
Отправляются письма с темой «Подтвердите новый адрес электронной почты» со ссылками вида https://forum.xx.org/users/authorize-email/c7ed779eb28c049ec4a5105dd9e07013, а не https://forum.xx.org/u/confirm-new-email/c15d4bc33211e586b70572195f7dac89.
Если я вручную исправлю ссылку, используя правильный URL и токен, всё работает отлично, но почему-то отправляется старый формат ссылки, а не новый! (Я пробовал дважды: один раз после выполнения grep и перезагрузки, описанных ниже.)
Только что выполнил ./launcher rebuild, но ссылки всё ещё отправляются в старом формате. Как заявлено, установлены только надёжные официальные плагины.
Затем я зашёл в контейнер, перешёл в /var/www/discourse и выполнил grep -r authorize-email, но ни одного файла не найдено. После этого перезагрузил систему.
Я уже в тупике, по крайней мере во второй раз за последние 24 часа.