Фейковый провайдер аутентификации для разработки и тестирования

:information_source: Только для локальной разработки. Не подходит для продакшн-сайтов

При работе с Discourse локально полезно иметь возможность тестировать все различные методы входа. В большинстве случаев нас не интересует сам процесс аутентификации, нам просто нужно знать, как Discourse отреагирует на разные входные данные. Например:

  • Что произойдет, если email не подтвержден?
  • Что произойдет, если провайдер аутентификации не отправит нам адрес электронной почты?
  • Что произойдет, если провайдер аутентификации не отправит нам имя пользователя?
  • Что произойдет, если email совпадает, но не совпадает UID?
  • Как работают приглашения при использовании внешней аутентификации?
  • Как выглядит экран входа?
  • (Я мог бы продолжать бесконечно… но вы поняли суть)

До сих пор единственным реальным вариантом было «настроить реальную аутентификацию Google/Twitter/OAuth2 и т. д. в вашей среде разработки». Это работает, но невероятно утомительно, а затем вы оказываетесь в ситуации, когда вам приходится создавать несколько учетных записей Google/Twitter для тестирования различных комбинаций.

Я создал что-то более оптимизированное:

Если вы установите этот плагин локально, он предоставит вам фейкового провайдера аутентификации. Для Discourse он работает так же, как и любой другой провайдер (например, Google, Twitter, OAuth2, OIDC и т. д.).

При запуске процесса входа вам будет показан этот экран, где вы сможете вручную ввести любые данные. Введенные значения будут сохраняться через cookie, поэтому вы сможете легко повторять одно и то же действие. Поля соответствуют схеме хэша аутентификации Omniauth.

Он использует систему ManagedAuthenticator, поэтому данные будут сохраняться в таблице user_associated_accounts с provider_name равным developmentauth.


Он также поддерживает DiscourseConnect! Чтобы протестировать это, просто установите плагин и включите настройку enable_discourse_connect. При следующем входе вы увидите все поля DiscourseConnect, готовые к использованию.


Пожалуйста, попробуйте его в следующий раз, когда будете работать с аутентификацией, и дайте мне знать, если есть что-то, что можно улучшить :slight_smile:

:philosoraptor: Обратите внимание, что это самый небезопасный плагин аутентификации, когда-либо созданный. Поэтому он откажется запускаться в продакшн-среде, и вы должны установить переменную окружения DISCOURSE_DEV_ALLOW_ANON_TO_IMPERSONATE в значение 1, чтобы он работал

17 лайков

Привет, этот плагин не работает с Ember CLI. Когда я ввожу детали и нажимаю «Подключить», я вижу следующее:

Та же ошибка, что и на Unable setup development enviroment(docker) as DiscourseConnect provider

Не могли бы вы, пожалуйста, взглянуть на это?