Можно ли аутентифицироваться в Drupal через Discourse?

Возможно ли создать учетные записи пользователей в Discourse, а затем аутентифицироваться в Drupal с их помощью? Я хочу, чтобы учетные записи хранились именно в Discourse.

При поиске я нахожу только информацию об обратном — когда Drupal выступает источником аутентификации.

Моя конкретная ситуация: у меня запущен экземпляр Discourse для членов семьи. Я хотел бы создать сайт для обмена рецептами на базе Drupal 8, но мне бы очень не хотелось заставлять семью регистрироваться ещё в одной системе. Мне уже с трудом удаётся вовлечь их в Discourse…

Заранее спасибо.

Discourse может выступать в роли провайдера единого входа (SSO). Настроить это с Drupal возможно, но мне неизвестно о существовании готовых модулей Drupal для этой задачи. Подробную информацию о необходимых шагах см. по ссылке: Use Discourse as an identity provider (SSO, DiscourseConnect).

Если вы не привязаны к использованию Drupal, плагин Discourse для WordPress позволяет использовать Discourse в качестве провайдера единого входа для сайта на WordPress.

Зачем создавать зависимость, которая может не понадобиться небольшому числу пользователей, которые, возможно, не будут использовать ни то, ни другое? Два совершенно разных интерфейса станут ещё одним барьером для их участия.

Рассмотрите два других варианта:

  • Используйте Discourse и для рецептов.
  • Используйте Drupal для обоих случаев.

Спасибо, это именно то, что я искал. :slight_smile:

Кстати, какой это тип аутентификации? OAuth, OpenID Connect? Мне кажется, что я должен был бы понять это из описания того, как это работает, но что-то не складывается.

Краткий ответ: используйте правильный инструмент для правильной задачи. Discourse — это удивительное программное обеспечение для форумных сообществ. А что касается Drupal, то его модуль форумов, честно говоря, довольно слабый.

Drupal великолепен в связывании различных элементов контента. Пытаться заставить Discourse делать то, что я могу сделать в Drupal, было бы безумием. Например, модуль рецептов в Drupal создает ингредиенты как отдельные сущности. Это означает, что я могу добавить в свой профиль список понравившихся мне ингредиентов, а затем сгенерировать список рецептов, которые мне могут понравиться, исходя из этих ингредиентов.

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

Это собственная реализация SSO в Discourse. По сути, это обратный процесс по сравнению с Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso). Если вы хотите посмотреть пример кода, код клиента SSO для плагина WordPress находится здесь: wp-discourse/lib/sso-client at main · discourse/wp-discourse · GitHub. Самая сложная часть реализации этого в WordPress заключалась в необходимости использования уникального nonce. Возможно, в Drupal это будет проще сделать.

Любая работа, которую вы проделаете над интеграцией Discourse и Drupal, будет очень ценна!