Удаление SSO через API

Как удалить запись SSO через API? Я использую Discourse и меняю внешний идентификатор (external_id). Как можно очистить старые записи этого пользователя, не теряя при этом самого пользователя и его сообщения?

Может быть, просто удалите все записи SSO один раз из консоли Rails и дайте им переподключиться по электронной почте? Я точно не помню, какую таблицу вы ищете, но это может быть что-то вроде:

 UserAssociatedAccount.all.destroy_all

Кажется, есть другие темы, посвященные этой проблеме. Вы уже искали?

external_id, передаваемый провайдером SSO, не должен изменяться. Если есть возможность, избегайте изменения значений external_id для ваших пользователей.

Пока вы не устанавливаете параметр SSO require_activation в значение true, вы можете удалить все записи SSO, как упомянул Джей. Для этого откройте консоль вашего сайта и выполните:

SingleSignOnRecord.destroy_all

Перед выполнением этого действия убедитесь, что параметр require_activation в полезной нагрузке SSO не установлен в true. Если этот параметр установлен, пользователи не будут найдены по адресу электронной почты при следующем входе на сайт. Вместо этого при попытке входа они получат ошибку.

Если параметр require_activation не установлен в true, пользователи будут найдены по адресу электронной почты при следующем входе в Discourse. В этот момент для них будет создана новая запись SSO. Если адреса электронной почты каких-либо пользователей не синхронизированы между вашим сайтом провайдера SSO и Discourse, при следующем входе в Discourse возникнут проблемы. Некоторые детали по устранению таких проблем можно найти здесь: Debug and fixing common DiscourseConnect issues.

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

Мой форум Discourse находится на тарифе STANDARD. Возможно ли получить доступ к консоли Rails в этом плане? Если да, то как мне это сделать?

Отправьте электронное письмо на support@discourse.org или напишите в @support, чтобы выполнить указанную выше команду.