Я хотел бы ограничить доступ к определенным страницам нашего веб-сайта в зависимости от того, есть ли у пользователя учетная запись на нашем частном форуме Discourse. Предполагается, что я буду делать это, проверяя на этих страницах, вошел ли пользователь в систему на Discourse в данный момент.
Я ещё не пробовал это, но параметр prompt может оказаться полезным в вашем случае:
prompt: Если prompt=none, то запрос SSO рассматривается как запрос «просто проверка». Если браузер/устройство уже авторизованы в Discourse, система вернёт успешный ответ SSO с информацией об аутентификации пользователя, как обычно. Если браузер/устройство не авторизованы, то Discourse не предложит пользователю войти в систему и сразу вернёт ответ SSO с параметром failed=true вместо информации о пользователе. Это предоставляет механизм проверки, авторизован ли пользователь, не перенаправляя его к диалогу входа, если он не авторизован.
Мне интересно, не упускают ли из виду возможность использования Discourse в качестве провайдера аутентификации из-за его названия (DiscourseConnect). Например, простое добавление термина DiscourseConnect в пост здесь создаёт ссылку на тему об использовании внешнего сайта в качестве провайдера аутентификации для Discourse. Использование Discourse в качестве провайдера аутентификации — одно из моих главных обоснований для создания сайта на Discourse.
@simon Я просто хотел ответить и поблагодарить вас. Я действительно считаю, что ваше предыдущее предложение — правильное решение. У меня возникли трудности с его реализацией на моём сайте, но проблема, похоже, в основном заключается в том, что это полукастомная CMS, и много хрупкого кода мешает этому.