maicol07/flarum-sso-plugin
maicol07/flarum-sso-plugin enables single sign-on for Flarum forums via OAuth2/OpenID Connect providers. It lets users authenticate with external identity systems, link and sync accounts, and configure login flows, reducing password management while keeping forum access centralized.
This is a Flarum extension, not a Laravel package — it's installed into a Flarum installation (Flarum itself is built on Illuminate components, so the conventions will feel familiar). Don't try to composer require it into a Laravel app.
Minimal path:
composer require maicol07/flarum-sso-php-pluginphp flarum cache:clearLook first at:
example/ directory in the repo — it was touched in 3.3.2 and is the canonical reference for the login flow.First use case: delegating authentication to an external SSO/IdP so users log into Flarum with centrally-managed credentials, with accounts provisioned on first login from IdP claims (username, email, groups).
set username attribute before login in the example) is a reminder that username must be resolved before the login call. If you adapt the example into your own flow, mirror that ordering — set username → set email → set groups → login.rector rules, explicit nullable params) shows the internals churn between patches even when the public surface doesn't.config/*.php to publish, no artisan commands of its own. Configuration lives in Flarum's admin panel and database. Expecting php artisan vendor:publish is the most common wrong turn.fonts.less / icons.less dropped the leading ../. If icons or fonts render broken after upgrading, recompile/publish assets and clear the cache (php flarum cache:clear, php flarum assets:publish) before debugging anything else — it's almost always stale compiled CSS.docs/ in older issues or blog posts may 404; go to the Pages site for the current version.example/, not in the extension's core — meaning the shipped example had a real flaw in login ordering. Read it as a reference, not as copy-paste production code.storage/logs/ in the Flarum root first; most failures are redirect-URI mismatches, expired client secrets, or missing claims (username/email) from the IdP. Log the raw claim payload during setup, then remove that logging.How can I help you explore Laravel packages today?