glutio / domainsso
Flarum SSO using domain scoped cookies.
Installs: 46
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:flarum-extension
README
Delegate Flarum login, logout and session validation to an SSO endpoint on the same domain by forwarding the domain-scoped cookies. Main scenario is to share login session between main site and forum site.
Example:
- SSO url is
https://example.com
and has login endpoint/api/auth/signin
, logout endpoint/api/auth/signout
and session endpoint/api/auth/session
. - Flarum url is
https://flarum.example.com
with DomainSSO extension enabled. - The user clicks
Log In
on the Flarum site and is redirected tohttps://example.com/api/auth/signin
where they log in and a domain-scoped token cookie is generated. - The user is redirected back to Flarum at
https://flarum.example.com
and the domain-scoped cookie is forwarded tohttps://example.com/api/auth/session
. - If based on the domain-scoped cookie the session is validated (returning session JSON) Flarum logs in the user based on the user's email address (the user is created in Flarum's database on first login).
- The user clicks
Log Out
on the Flarum site and is logged out of Flarum and is redirected tohttps://example.com/api/auth/signout
where the domain-scoped session is terminated.
Double-clicking Log In
on the Flarum site pops up a login dialog for local Flarum admin to login to setup or fix the extension's settings.
Install using composer require glutio/domainsso:*
.
Initially the the extension is implemented to work with NextAuth.js and expects the session JSON to have a user property:
{
"user": {
"name": "John Doe",
"email": "john.doe@example.com",
"image": "https://example.com/image.jpg"
}
}