Ответ, созданный пользователем Discourse, не соответствует ожиданиям

Discourse возвращается

Вы почти завершили! Мы отправили письмо с активацией на abc@gmail.com. Пожалуйста, следуйте инструкциям в письме, чтобы активировать свою учётную запись.

Если оно не пришло, проверьте папку «Спам».

даже если адрес электронной почты существует. Я внес изменения в код: в методе create в контроллере пользователя (userController) я зашил сообщение активации в код как «Пользователь активирован». Даже в этом случае сообщение появляется как выше. Кто-нибудь может помочь?

Извините, я не понял, что вы написали?

Я расскажу вам об этом подробно.

Итак, наши требования таковы: мы должны регистрировать множество пользователей из нашей базы данных в Discourse. Поэтому мы не можем разрешить пользователям активировать свои учётные записи в Discourse по электронной почте, так как мы делаем это через Firebase в нашем веб-приложении.

Поэтому я провёл исследование кода Discourse и закомментировал часть функции activate в контроллере User, которая отправляет письмо, и активировал пользователя непосредственно там. В результате возвращался следующий ответ:

    success: true,
    active: true,
    message: "Пользователь активирован",
    user_id: user.id

Но с вчерашнего дня я начал получать следующий ответ:

success: true,
active: false,
message: ‘Вы почти готовы! Мы отправили письмо с инструкциями по активации на abc@gmail.com. Пожалуйста, следуйте инструкциям в письме, чтобы активировать свою учётную запись. Если письмо не пришло, проверьте папку со спамом.’

Как я могу проверить, что мой API регистрации пользователей вызывает функцию create, или возможно ли, что какая-то кэширование вызывает эту проблему?

Если вы вносите изменения не в плагин, а напрямую в код Discourse, то при обновлении Discourse все ваши изменения будут перезаписаны. Не это ли произошло?

О каком плагине вы говорите? Единственные изменения, которые я внес, были в users_controller в коде Discourse? Можете просто помочь мне с кодом? Я хочу отладить его, используя код. Просто подскажите, где находятся маршруты для регистрации пользователя: /u или /u.json, если быть точным.

Также, если я выведу что-то в userController с помощью print, смогу ли я увидеть лог в терминале? Сейчас у меня не получается.

Я понял проблему. Я не отправлял правильные значения password_confirmation и challenge из своего запроса, из-за чего система помечала его как подозрительный. Я внес необходимые изменения, и теперь всё работает. Но какова логика работы этих двух параметров, раз они постоянно меняются?