Creating and configuring custom user fields

Синтаксис должен быть custom.user_field_x, где x — числовой идентификатор поля, отображаемый в /admin/config/user-fields/{x}/edit.

Функция сопоставления недоступна напрямую в плагине Auth0.

Тем не менее, есть варианты реализации того, что вы описываете:

  • создание компонента темы. Вы можете добавить небольшой фронтенд-скрипт, который автоматически синхронизирует пользовательское поле в Discourse со значением, уже сохранённым в Auth0. Например, когда пользователь входит в систему, а поле пустое, скрипт может вызвать защищённую конечную точку (небольшую облачную функцию), которая получит значение поля из Auth0 и обновит профиль в Discourse через API.
  • использование инструментов автоматизации. Вы также можете использовать внешние сервисы автоматизации, такие как Zapier или Make, для выполнения этой синхронизации вне Discourse. Преимущество в том, что вам не нужно писать или поддерживать код, достаточно только платить за сторонний сервис.
  • кастомная разработка. Мы можем расширить сам плагин Auth0, чтобы он нативно поддерживал сопоставление пользовательских утверждений (custom claims) с пользовательскими полями при входе, либо создать собственный плагин, работающий в паре с плагином Auth0.

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

Если бы я был на вашем месте, я бы склонился ко второму варианту — использованию сторонних инструментов, или рассмотрел бы возможность подачи запроса на новую функцию или запроса на кастомную разработку (в зависимости от оценки нашими менеджерами проектов) для расширения самого плагина Auth0.

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

1 лайк