Я хочу инициировать отправку пользователю письма для входа без пароля через API (такого же, которое он получил бы, если бы нажал «Войти по электронной почте» самостоятельно), но, похоже, это невозможно. Я использовал технику «обратной инженерии API», чтобы попытаться найти решение, но аутентификация с помощью глобального ключа API просто возвращает главную страницу и ничего не запускает (а без ключа API, похоже, требуются куки сессии и т. д.).
Моя цель — максимально упростить процесс регистрации: поскольку пользователи регистрируются через другую систему, я создаю их в Discourse и хочу, чтобы они сразу получали письмо со временной ссылкой для входа. Всё это направлено на снижение трения в процессе, который и так довольно утомителен!
Есть ли какой-то трюк, чтобы заставить это работать через API?
Большое спасибо за ответ, Falco. При использовании curl точно так, как вы предложили, я получаю ответ «Вы перенаправляетесь», который возвращает меня на главную страницу. Запрос на ввод email для входа не появляется. Я получал аналогичный результат с инструментом, который использовал, — он также следовал перенаправлению обратно на главную страницу.
Я не хочу использовать DiscourseConnect, поскольку единственный требуемый вход после регистрации предназначен только для Discourse.
Также хочу добавить, что, будучи давним пользователем (и поклонником) форумов Discourse, это мой первый опыт работы с другой стороны — и API / вебхуки просто отличные: с ними очень легко работать, и они обладают большой мощностью.
Эта конечная точка в данный момент действительно недоступна для вызовов через API. При передаче API-ключей для неё вы попадаете на перенаправление здесь:
А без API-ключей вызвать её нельзя, так как этот маршрут защищён от CSRF с помощью :verify_authenticity_token.