PHPackages                             purplespider/silverstripe-discourse-sso - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. purplespider/silverstripe-discourse-sso

ActiveSilverstripe-vendormodule[Authentication &amp; Authorization](/categories/authentication)

purplespider/silverstripe-discourse-sso
=======================================

Log in to Discourse with Silverstripe member accounts

1.0.1(8mo ago)1241BSD-3-ClausePHP

Since Feb 15Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/purplespider/silverstripe-discourse-sso)[ Packagist](https://packagist.org/packages/purplespider/silverstripe-discourse-sso)[ Docs](http://github.com/purplespider/silverstripe-discourse-sso)[ RSS](/packages/purplespider-silverstripe-discourse-sso/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (3)Used By (0)

Silverstripe SSO for Discourse (DiscourseConnect)
=================================================

[](#silverstripe-sso-for-discourse-discourseconnect)

Allows users to sign in to Discourse with user accounts on your [Silverstripe](https://www.silverstripe.org/) based website.

Note: This becomes the **only** way to log in to Discourse. To add a "Log in as..." button instead, look into OAuth, instead of SSO ([DiscourseConnect](https://meta.discourse.org/t/discourseconnect-official-single-sign-on-for-discourse-sso/13045)).

Installation
------------

[](#installation)

1. Install into your Silverstripe site via composer:

```
composer require purplespider/silverstripe-discourse-sso "1.*"

```

2. Add config:

```
PurpleSpider\DiscourseSSO\DiscourseSSOEndpoint:
  extensions:
    - PurpleSpider\MySite\DiscourseSSOEndpointExtension
  secret: REPLACE-WITH-RANDOM-STRING
  discourse-sso-url: "https://community.example.com/session/sso_login"
```

- Set `secret` to a random string (min 10 characters)
- Change `https://community.example.com` to your Discourse install's URL.

2. Perform a dev\\build:

```
dev/build?flush=1

```

3. Configure [DiscourseConnect](https://meta.discourse.org/t/discourseconnect-official-single-sign-on-for-discourse-sso/13045) in your Discourse Admin.

- Settings &gt; Login &gt; `enable discourse connect`: `Enabled`
- Settings &gt; Login &gt; `discourse connect url`: `https://example.com/discourse/sso` (Replace `example.com` with your Silverstripe site's domain.)
- Settings &gt; Login &gt; `discourse_connect_secret`: Set to the SAME random string from your Silverstripe config above.

Optional Customisation
----------------------

[](#optional-customisation)

- Implement user email validation on the Silverstripe side (essential for Discourse).
- Redirect to Silverstripe logout page after a Discourse log out: Discourse &gt; Settings &gt; Users &gt; `logout redirect`: `https://example.com/Security/logout?BackURL=/home`
- Log out user on Discourse after logging out from Silverstripe site.
    - Using [Discouse API](https://meta.discourse.org/t/discourseconnect-official-single-sign-on-for-discourse-sso/13045#heading--logoff).
    - Or use something like
- Customise Silverstripe log in message: **app/lang/en.yml**

```
en:
  PurpleSpider\DiscourseSSO\DiscourseSSOEndpoint:
    LOGINMESSAGE: "To access our forum, please log in or register:"
```

- Use an Extension to pass through extra member data to Discourse, and/or customise log in authentication, e.g.

```
