cosmonova-rnd / auth
Simple OAuth 2 library for Symfony projects
0.7.2
2018-01-15 13:17 UTC
Requires
- cosmonova-rnd/jwt: ^0.7
- guzzlehttp/guzzle: ^6.3
- symfony/console: ^4.0
- symfony/framework-bundle: ^4.0
- symfony/orm-pack: ^1.0
- symfony/security-bundle: ^4.0
This package is not auto-updated.
Last update: 2025-03-30 07:41:14 UTC
README
At this time, library allow to auth using JWT with OAuth2 Authorization Code
flow.
Installation
Install package using composer
composer req cosmonova-rnd/auth
Basic configuration
- Enable session handler in your application
framework: session: handler_id: ~
- Configure DB connection, then add new entity manager
auth
to your application config
doctrine: orm: entity_managers: auth: connection: default ## may be your custom connection default_repository_class: 'CosmonovaRnD\Auth\Repository\UserRepository' mappings: Auth: is_bundle: false type: annotation dir: '%kernel.project_dir%/vendor/cosmonova-rnd/auth/src/Entity' prefix: 'CosmonovaRnD\Auth\Entity' alias: Auth
- Configure encoder and provider in
security
section
security: encoders: CosmonovaRnD\Auth\Entity\User: algorithm: plaintext providers: auth_provider: id: CosmonovaRnD\Auth\Security\UserProvider
Configuration of authentication through OAuth2 service (authorization_code
flow)
- Configure your main firewall to use package provider and set login form config like bellow
security: firewalls: main: ### If you want to use OAuth2 Access Code authentication flow provider: auth_provider anonymous: ~ logout: ~ form_login: login_path: auth check_path: auth
- Add access control rules
access_control: - { path: ^/auth, roles: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/, roles: IS_AUTHENTICATED_FULLY }
Configuration for checking authentication using JSON Web Token
In this case we use Authorization: Bearer <MY JWT>
header
- Configure any provider (such like a
memory
)
security: providers: in_memory: { memory: ~ }
- Then add to your main firewall this provider and guard authenticator
security: firewalls: main: provider: in_memory guard: authenticators: - CosmonovaRnD\Auth\Security\Authenticator\JwtAuthenticator stateless: true
- Also configure your access rules if needed
access_control: - { path: ^/, roles: IS_AUTHENTICATED_FULLY }