shield-wall / simple-authenticator
Simple symfony authenticator
v0.3.3
2022-08-26 15:38 UTC
Requires
- php: ^8.1
- symfony/form: ^5.4 || ^6.1
- symfony/http-client: ^5.4 || ^6.1
- symfony/routing: ^5.4 || ^6.1
- symfony/security-bundle: ^5.4 || ^6.1
README
It's a simple symfony authenticator, for you be able to log in just with email.
Install
composer req shield-w4ll/simple-authenticator
Note We relly recommend use this package in dev environment only.
Configuration
#config/packages/shield_wall.yaml when@dev: simple_authenticator: route: redirect_success: 'profile_edit' redirect_failure: 'app_login' security: firewalls: main: custom_authenticators: - ShieldWall\SimpleAuthenticator\Security\EmailAuthenticator
#config/routes/shield_wall.yaml simple_authenticator_login: prefix: ^/ path: /simple_authenticator/login
#config/service.yaml ShieldWall\SimpleAuthenticator\Security\EmailAuthenticator: arguments: - '@Symfony\Component\Routing\Generator\UrlGeneratorInterface' - '@App\Repository\UserRepository' - '%shield_wall.simple_authenticator.route.redirect_success%' - '%shield_wall.simple_authenticator.route.redirect_failure%'
//YourController.php public function yourAction() { $simpleAuthenticatorForm = $this->createForm(SimpleAuthenticatorType::class, null, [ 'action' => $this->generateUrl('simple_authenticator_login'), ]); $simpleAuthenticatorFromView = $simpleAuthenticatorForm->createView(); return $this->render('your_template.html.twig', [ 'simpleAuthenticatorFrom' => $simpleAuthenticatorFromView, ]); } //your_file.html.twig {{ form(simpleAuthenticatorFrom) }}
Repository
//src/Repository/UserRepository.php class UserRepository extends ServiceEntityRepository implements EmailRepositoryInterface { public function findOneByEmail(string $email): UserInterface { return $this->findOneBy(['email' => $email]); } }
TODO
- need to see someway to get the route name from controller
simple_authenticator_login
- import route as resource
- service should be declared automatically.