Аутентификация с использованием логики сторонних (кастомных) сервисов

Я пытаюсь написать плагин, который позволит входить в Discourse с использованием «какой-то» кастомной логики. Без имени пользователя и пароля, возможно, с использованием PIN-кода или одноразового токена, который вы генерируете.

Я готов написать всю логику и прочее, но я новичок в разработке для Discourse, поэтому пытаюсь понять, возможно ли это.

Я изучил все или почти все доступные плагины аутентификации, и большинство из них просто используют готовые Gem-библиотеки и 10–20 строк кода, чтобы всё заработало.
Это отлично, однако в моём случае требуется полностью кастомная логика.

Просто интересно, есть ли где-то что-то, что можно использовать в качестве примера, например, аутентификация по имени пользователя и паролю или что-то подобное.
Или если кто-то может указать мне правильное направление.

Цель — использовать тот же функционал, который вы получаете при добавлении других учётных записей (Google, Facebook и т. д.).
Просто добавить ещё одну «связанную» учётную запись, против которой можно проходить аутентификацию. Соотношение один к одному между пользователем Discourse и моим «токеном» (если это поможет).

Это обучающий проект. У меня очень активное сообщество Discourse, и я бы очень хотел иметь возможность внести свой вклад.

Спасибо!

Возможно, вы можете использовать сервис, который предоставляет нужный вам тип аутентификации, но взаимодействует с Discourse по стандартному протоколу (например, OpenID Connect)?

Предназначен ли этот альтернативный метод для связывания с существующими учётными записями пользователей или это какая-то форма анонимного авторизованного входа? Если он привязан к существующей учётной записи, то вам может подойти внешний сервис идентификации, такой как Keycloak? Насколько мне известно, он поддерживает OTP (одноразовый пароль) и множество других методов. Хотя это может оказаться не проще.