Discourse can serve as a Single Sign On provider for Authentication.

  • Deploy a Discourse application and configure <https://meta.discourse.org/t/using-discourse-as-a-sso-provider/32974> the application to enable Discourse as an SSO provider.

  • Fill in the shared secret and url of the Discourse server in the settings:

    SOCIAL_AUTH_DISCOURSE_SECRET = "myDiscourseSecret"
    SOCIAL_AUTH_DISCOURSE_SERVER_URL = "https://my-discourse-site.com"

Using multiple Discourse instances

Since Discourse is a distributed application, multiple Discourse instances can be used as SSO providers. If this is the case, the DiscourseAuth class can be extended and configured as follows:

from social_core.backends.discourse import DiscourseAuth

class DiscourseAuthFoo(DiscourseAuth):
    name = 'discourse-foo'

class DiscourseAuthBar(DiscourseAuth):
    name = 'discourse-bar'

Fill in the settings like so:

SOCIAL_AUTH_DISCOURSE_FOO_SERVER_URL = "https://my-discourse-foo-site.com"
SOCIAL_AUTH_DISCOURSE_BAR_SERVER_URL = "https://my-discourse-bar-site.com"