ОбзорКак сохранить полное имя пользователя вместо адреса электронной почты в Auth0?
Когда пользователь подпишется на наши услуги с помощью внешнего провайдера авторизации, таких как Google или Facebook, то имена пользователей хранятся, как и следовало ожидать в поле Auth0 «имя». Однако, когда пользователь подписывается с использованием своего адреса электронной почты, их адрес электронной почты сохраняется в поле «имя».
Мы хотим, чтобы настоящее имя пользователя всегда было в поле «имя», чтобы упростить интеграцию с другими сторонними службами.
Исследование
Из документов: https://auth0.com/docs/metadata
Auth0 позволяет хранить метаданные, или данные, относящиеся к каждому пользователю, что не пришло от поставщика удостоверений. Существует два вида метаданных :
user_metadata: сохраняет пользовательские атрибуты (например, пользовательские настройки), которые не влияют на основные функции пользователя; app_metadata: хранит информацию (например, план поддержки пользователя, роли безопасности или доступ к группам управления ), которые могут влиять на основные функции пользователя, такие как , как работает приложение или что пользователь может получить.
Таким образом, мы можем сохранить имя пользователя в метаданных, а затем получить его, когда Auth0 возвращает профиль. Это не идеально, поскольку оно добавляет излишнюю сложность.
Вопрос из официальных форумов: https://auth0.com/forum/t/editing-user-name/2944
Пользователь спрашивает:
Если я храню пользователь в базе данных Auth0, является его действительно не представляется возможным установить их имена реальных ? Похоже, он принимает только адрес электронной почты .
И получает ответ:
Можно хранить эту или любую другую информацию в соответствии с app_metadata или user_metadata. Вы можете изменить эту информацию через приборную панель, правила или API: https://auth0.com/docs/api/management/v2#!/Users/patch_users_by_id
В принципе, не кажется, нет нигде в документации или на форуме о том, как решить эту проблему.
Мы наконец-то придумали способ вернуть реальное имя пользователя с профилем пользователя. Я разместил здесь ответ, чтобы облегчить жизнь другим разработчикам, если столкнетесь с этой проблемой.
все еще в этом не желательно, поскольку нам нужно установить имя пользователя в корневой части модели пользователя не в app_metadata или user_metadata – ANinJa