survos / auth-bundle
Helper commands and classes for symfony security
Fund package maintenance!
2.10.14
2026-06-17 12:10 UTC
Requires
- php: ^8.5
- doctrine/orm: ^3.3
- knpuniversity/oauth2-client-bundle: ^2.20
- survos/kit-bundle: ^2.5
- symfony/config: ^8.1
- symfony/console: ^8.1
- symfony/dependency-injection: ^8.1
- symfony/http-kernel: ^8.1
- symfony/options-resolver: ^8.1
- symfony/password-hasher: ^8.1
- symfony/security-bundle: ^8.1
- symfony/ux-icons: ^3
- symfony/ux-twig-component: ^3
- twig/twig: ^3.4
Requires (Dev)
- doctrine/doctrine-bundle: ^3.0
- phpstan/phpstan: ^2.0
- stevenmaguire/oauth2-dropbox: ^3.1
This package is auto-updated.
Last update: 2026-06-20 20:31:41 UTC
README
Symfony bundle for OAuth login and provider-driven onboarding UX.
composer req survos/auth-bundle
Configuration Model
Use survos_auth as the canonical config. The bundle prepends knpu_oauth2_client client config automatically.
1) Configure providers
config/packages/survos_auth.yaml:
survos_auth: production_url_base: '%env(PRODUCTION_URL)%' providers: github: client_id: '%env(OAUTH_GITHUB_CLIENT_ID)%' client_secret: '%env(OAUTH_GITHUB_CLIENT_SECRET)%' scopes: ['user:email', 'read:user'] google: client_id: '%env(OAUTH_GOOGLE_CLIENT_ID)%' client_secret: '%env(OAUTH_GOOGLE_CLIENT_SECRET)%' scopes: ['email', 'profile', 'openid']
Optional per-provider keys supported:
typeredirect_routeredirect_paramsuse_state
Global optional key:
production_url_base(used by provider setup pages to render production callback URLs)
scopes are used by your app at redirect time and are not forwarded into KnpU config.
2) Add env vars
OAUTH_GITHUB_CLIENT_ID= OAUTH_GITHUB_CLIENT_SECRET= OAUTH_GOOGLE_CLIENT_ID= OAUTH_GOOGLE_CLIENT_SECRET=
3) Keep knpu config minimal
config/packages/knpu_oauth2_client.yaml:
knpu_oauth2_client: clients: { }
User Entity
Implement OAuthIdentifiersInterface and use OAuthIdentifiersTrait.
use Survos\AuthBundle\Traits\OAuthIdentifiersInterface; use Survos\AuthBundle\Traits\OAuthIdentifiersTrait; class User implements OAuthIdentifiersInterface { use OAuthIdentifiersTrait; }
Useful Routes
/oauth/connect/{provider}/oauth/check/{provider}/oauth/providers/oauth/provider/{providerKey}
UI
Twig components are available and should be rendered with twig: tags.
<twig:OAuth /> <twig:auth_login /> <twig:auth_register /> <twig:auth_profile />