README

This bundle integrates the AutoLogin library with Symfony, which implements
a security firewall listener to authenticate users based on a single query
parameter. This is useful for providing one-click login functionality in email
and newsletter links.

# security.ymlsecurity:
firewalls:
main:
# We need not specify a "provider" for our firewall or listeners,# since SecurityBundle will default to the first provider defined.jmikola_auto_login:
auto_login_user_provider: acme.auto_login_user_provider

In the example above, we specify a custom service for auto_login_user_provider
since the default EntityUserProvider does not implement
AutoLoginUserProviderInterface.

When visiting http://example.com/path?_al=foobar,
AcmeAutoLoginUserProvider::loadUserByAutoLoginToken() will be invoked with the
value "foobar". This method should resolve that value to a user object or throw
a Jmikola\AutoLogin\Exception\AutoLoginTokenNotFoundException.

Listener Options

The AutoLoginFactory defines the following listener options:

auto_login_user_provider: AutoLoginUserProviderInterface service, which
provides a method to load users by an auto-login token (i.e. query
parameter). If this service is not defined, the listener's user provider
will be used by default and an exception will be thrown if the provider does
not implement the required interface (in addition to UserProviderInterface).

provider: User provider key. This is a standard option for most security
listeners. If undefined, the default user provider for the firewall
is used (see: SecurityBundle documentation).

token_param: The query parameter to be checked for an auto-login token.
The presence of this query parameter will determine if the auto-login
listener attempts authentication. In that respect, it is similar to the
check_path option for the form-login listener. If undefined, the option
defaults to _al.

Alternative Configuration Example

In this example, we specify a provider that implements both
Symfony\Component\Security\Core\User\UserProviderInterface and
Jmikola\AutoLogin\User\AutoLoginUserProviderInterface. We also customize the
URL parameter to use "auto_login" instead of the default "_al":

FOSUserBundle Configuration Example

If you are using FOSUserBundle, defining a service ID for your user provider
will look familiar. You can easily integrate this bundle with FOSUserBundle by
defining a custom service for fos_user.user_manager: