По какой-то непонятной мне причине Discourse не позволяет пользователям подключать или управлять уже подключёнными внешними аккаунтами (например, связанным аккаунтом Discord). Код Discourse, по-видимому, использует следующую логику для определения того, может ли пользователь обновлять свои связанные аккаунты:
secondFactorEnabled,
canCheckEmails,
isAnonymous
) {
if (secondFactorEnabled || !canCheckEmails || isAnonymous) {
return false;
}
return findAll().length > 0;
Почему secondFactorEnabled является переменной, которая учитывается здесь?
Мои пользователи очень запутались, оказавшись в странной ситуации. Они зарегистрировали аккаунт на нашем сайте, связали его с аккаунтом Discord, чтобы получить доступ к нашему серверу Discord, а затем включили двухфакторную аутентификацию (2FA) на своём аккаунте. После этого раздел «Связанные аккаунты» полностью исчез с их страницы профиля! Они больше не могут видеть или управлять своим связанным аккаунтом, пока включена 2FA.
У нас есть ещё один пользователь, который очень запутался, потому что создал аккаунт, включил 2FA и не смог следовать нашим инструкциям по добавлению связанного аккаунта, так как раздел «Связанные аккаунты» у него изначально вообще не отображался.
Единственное, что объединяет этих двух пользователей с другими пользователями, у которых нет этой проблемы, — это то, что у обоих включена 2FA.
Я хотел бы предоставить своим пользователям возможность одновременно иметь включённую 2FA на своём форуме и иметь возможность связать свой аккаунт с аккаунтом Discord.
Я размещаю этот вопрос в категории Support, но не уверен, является ли это на самом деле Contribute > Bug. В любом случае, похоже, что обходного пути нет без внесения изменений в код Discourse.