glutio / domainsso
Flarum SSO using domain scoped cookies.
0.0.1
2024-03-24 16:22 UTC
Requires
None
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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.comand has login endpoint/api/auth/signin, logout endpoint/api/auth/signoutand session endpoint/api/auth/session. - Flarum url is
https://flarum.example.comwith DomainSSO extension enabled. - The user clicks
Log Inon the Flarum site and is redirected tohttps://example.com/api/auth/signinwhere they log in and a domain-scoped token cookie is generated. - The user is redirected back to Flarum at
https://flarum.example.comand 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 Outon the Flarum site and is logged out of Flarum and is redirected tohttps://example.com/api/auth/signoutwhere 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"
}
}