Symfony Authentication Bundle integrating Almefy using Almefy PHP Client.
Below is a quick guide how to integrate Almefy Authentication Bundle in your Symfony project to test it easily. We are already preparing a comprehensive documentation covering all possible use cases and parameters.
Bundle comes with several required configuration options that are exposed using environment values.
# Example .env Data
# Almefy Entity credentials and api url
ALMEFY_KEY=...
ALMEFY_SECRET=...
ALMEFY_API=...
# Local route to redirect and local route to authenticate
LOGIN_REDIRECT_URL=/sessions
LOGIN_AUTHENTICATE_URL=/almefy/authenticate
Configure routes
# config/routes.yaml
almefy_authenticator:
resource: '@AuthenticationBundle/config/routes.yaml'
prefix: /almefy
Update security.yaml
security:
providers:
almefy_user_identity_provider:
id: Almefy\AuthenticationBundle\Security\AlmefyUserIdentityProvider
firewalls:
main:
lazy: true
provider: almefy_user_identity_provider
entry_point: Almefy\AuthenticationBundle\Security\AuthenticationEntryPoint
custom_authenticator:
- Almefy\AuthenticationBundle\Security\AlmefyAuthenticator
logout:
path: app_logout
Update login page twig to add Almefy Widget
{{ include('@!Authentication/almefy_widget.html.twig') }}
Login controller has to pass variables to twig template hosting almefy_widget:
public function __construct(private Client $client, private AlmefySessionManager $almefySessionManager)
{
}
# ...
#[Route(path: '/login', name: 'app_login')]
public function login(AuthenticationUtils $authenticationUtils): Response
{
$error = $authenticationUtils->getLastAuthenticationError();
$lastUsername = $authenticationUtils->getLastUsername();
return $this->render('security/login.html.twig', [
'last_username' => $lastUsername,
'error' => $error,
'almefyApi' => $this->client->getApi(),
'almefyKey' => $this->client->getKey()
]);
}
Alternatively you can bind them using services to expose them for twig automatically.
Almefy Authentication Bundle is available on Packagist as the almefy/authentication-bundle
package. Run composer require almefy/authentication-bundle
from the root of your project in terminal, and you are done. The minimum PHP version currently supported is 8.0.
This bundle uses almefy/client
as a core component to communicate with Almefy API.
Make sure to check its documentation to get better understanding how everything works .
The Almefy PHP SDK is licensed under the Apache License, version 2.0.