Связанные учетные записи отключены при включенном двухфакторном аутентификации

По какой-то непонятной мне причине 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.

2 лайка