Только ли сотрудники могут отвязывать аккаунты соцсетей?

Итак, я подумываю, можно ли это реализовать. В моей настройке сообщества я не хочу, чтобы пользователи могли отвязывать свои аккаунты для входа через Discord или Steam. Мне удалось изменить настройки входа через Steam (никто не может отвязать аккаунт, даже администраторы), поскольку это внешний плагин, но я не уверен, можно ли что-то изменить для Discord, так как он теперь встроен в Discourse. Есть ли способ сделать так, чтобы кнопка «Отвязать социальный аккаунт» была видна и работала только для администраторов? Отвязка аккаунтов нужна мне лишь в редких случаях, например, если пользователь привязал не тот аккаунт. Однако, чтобы обеспечить синхронизацию рангов с моим Discord-сервером, кажется странным, если пользователи смогут отвязывать аккаунты по своему желанию. Я не думаю, что плагин здесь поможет, но могу ошибаться — просто не знаю, как можно добавить такую функцию.

Вы можете скрыть это с помощью CSS. Я полагаю, что лишение их возможности решать, делиться ли этими учетными данными с вами, является нарушением условий использования, но, возможно, мое воображение слишком буйное.

Да, верное замечание насчёт части с Условиями использования, я даже не подумал об этом. Я знаю, что в Discord всегда можно отозвать доступ. Раз уж ты упомянул, мне стоит это прочитать. В основном я не хочу, чтобы пользователь отменял привязку, потому что я использую их идентификаторы для синхронизации рангов и банов. Если они смогут разорвать связь, это немного усложнит процесс их блокировки и может позволить пользователю синхронизировать свои ранги на нескольких аккаунтах Discord. У меня часть со Steam синхронизируется при каждом входе, так что там проблем нет.

РЕДАКТИРОВАНИЕ: Да, я прочитал документацию для разработчиков Discord, и ничего особенного не бросилось в глаза. Так что, думаю, можно продолжать. Пользователь всегда может в любой момент разорвать связь с приложением через Discord, но я не уверен, отменяет ли это привязку в Discourse или как именно это работает.

Хм, после более тщательного изучения я не думаю, что это возможно без изменений в Discourse и добавления дополнительных настроек в основной проект, либо с использованием собственного провайдера Discord (что может быть неидеально, так как встроенный уже есть).

Не уверен, поддержит ли или добавит ли команда Discourse такую возможность, но, думаю, мне придётся создать внешнюю систему для своих нужд и использовать SSO Discourse только для связывания ссылок между Discourse и другой системой. Для моих целей я буду использовать социальные входы в Discourse только для входа в сам Discourse и больше ни для чего из-за этого ограничения. Вместо того чтобы вся привязка и ассоциация аккаунтов осуществлялись через профиль пользователя в Discourse, думаю, мне придётся использовать упомянутый выше инструмент, который я уже использую для проверки вещей, недоступных через OAuth или аналогичные протоколы.

Не буду помечать это как решение, поскольку это не прямое решение моего первоначального вопроса, а скорее решение для моего конкретного случая использования.

Ещё одно возможное решение — поместить ID в пользовательское поле и обновлять его через API. Или же поручить это плагину при входе пользователя. (Я не читал всю тему внимательно).