Спасибо за совет по app.yml, это сработало.
Хорошо, я тестирую это:
- Установил плагин migrationpassword
- Включил опцию «Разрешить миграцию паролей с незащищёнными паролями»
- Создал нового пользователя (через API)
- Добавил хеш пароля в пользовательские поля
Например: insert into user_custom_fields (user_id, name, value, created_at, updated_at) values (2,‘import_pass’,‘2aee1c40222c7754d4534xxxxxxx’, now(), now()); - Пытаюсь войти как новый пользователь с паролем со старого форума
Вход не удаётся с ошибкой «Неверное имя пользователя, email или пароль», но я запутался в вашем ответе выше: API не позволяет создать пользователя, если не указан пароль (я просто использовал MD5-хеш), но вы говорите, что если есть пароль, он будет иметь приоритет над MD5-хешем?
Я бы не рекомендовал использовать хэш MD5 в качестве пароля, так как он будет использоваться как сам пароль. Если поле пароля не потребуется при создании пользователя, просто используйте длинную случайную строку.
То, что я пытался сказать, заключается в следующем: Discourse сначала попытается выполнить вход пользователя, сравнив введенный пароль с сохраненным. Только если эта попытка не удалась, плагин migratepassword вступит в действие, и он попытается проверить правильность введенного пользователем пароля, сравнив его с пользовательским полем, используя ряд встроенных альтернативных алгоритмов хеширования (MD5 — один из них).
Ах, извините, моя ошибка — я указал неверное значение хеша пароля в user_custom_fields. Хорошо, теперь это исправлено, спасибо…
…однако
Хотя я создал пользователя с activate = true, и в консоли администратора отображается, что пользователь активирован, при попытке входа появляется сообщение:
Вы пока не можете войти. Ранее мы отправили вам письмо с подтверждением на адрес user@email.com. Пожалуйста, следуйте инструкциям в этом письме, чтобы активировать свою учётную запись.
Почему я получаю это сообщение? Я пытался его избежать.
У меня работает… какие ошибки вы получаете?
При попытке перейти на сайт я получаю ошибку 502, и в прошлый раз я ждал несколько часов.
Но я не заметил никаких ошибок в месте, где запускаю команду.
Извините, но я закрою этот вопрос с формулировкой «пожалуйста, не делайте этого».
Слишком рискованно, и вы, скорее всего, забудете о множестве побочных эффектов.