Недавно я запустил свой сайт и столкнулся с описанной ниже проблемой.
Проблема
Имя пользователя ‘賢治’ всегда автоматически меняется на ‘賢治1’, когда я отправляю полезную нагрузку для единого входа (SSO).
Странно, что имя может быть ‘賢治’, а вот имя пользователя — нет. Это наводит на мысль, что проблема в уникальности имени пользователя… но я проверил консоль Rails, и там нет пользователя с именем ‘賢治’. Есть ли ещё где-то, где следует проверить ограничение уникальности? Может быть, это проблема со специальными символами?
Контекст
Я только недавно запустил свой сайт Discourse и изначально создал его без включённой опции ‘юникодные имена пользователей’. Однако после обновления настроек я прошёлся по всем пользователям и обновил затронутых. У другого пользователя со специальными символами в имени к имени пользователя не было добавлено число.
Настройки Unicode
‘юникодные имена пользователей’ → разрешено
‘разрешённые символы в юникодных именах пользователей’ → [\p{Han}\p{Katakana}\p{Hiragana}]
Я не сталкивался с этой конкретной проблемой, но это…
…заставило меня подумать о настройке min username length.
Было ли у этого пользователя больше символов в имени? Значение по умолчанию для min username length — 3, поэтому, возможно, установка этого параметра в 2 решит проблему.
Рады, что всё сработало! Если вы считаете, что у вас могут быть пользователи, использующие один символ Unicode в качестве имени пользователя, то, вероятно, вам нужно изменить эту настройку на 1; в противном случае они не смогут зарегистрироваться, если не используют 2 символа.
Да, на основном сайте, с которого я аутентифицируюсь через единый вход, нет ограничений на минимальную длину, поэтому я установил минимальную длину в 1 символ