interface UserProviderInterface

Represents a class that loads UserInterface objects from some source for the authentication system.

In a typical authentication configuration, a user identifier (e.g. a username or email address) credential enters the system (via form login, or any method). The user provider that is configured with that authentication method is asked to load the UserInterface object for the given identifier (via loadUserByIdentifier) so that the rest of the process can continue.

Internally, a user provider can load users from any source (databases, configuration, web service). This is totally independent of how the authentication information is submitted or what the UserInterface object looks like.

Methods

refreshUser(UserInterface$user)

Refreshes the user.

bool
supportsClass(string$class)

Whether this provider supports the given user class.

loadUserByIdentifier(string$identifier)

Loads the user for the given user identifier (e.g. username or email).

Details

UserInterface refreshUser(UserInterface$user)

Refreshes the user.

It is up to the implementation to decide if the user data should be totally reloaded (e.g. from the database), or if the UserInterface object can just be merged into some internal array of users / identity map.

Parameters

UserInterface $user

Return Value

UserInterface

Exceptions

UnsupportedUserException if the user is not supported
UserNotFoundException if the user is not found

bool supportsClass(string$class)

Whether this provider supports the given user class.

Parameters

string $class

Return Value

bool

UserInterface loadUserByIdentifier(string$identifier)

Loads the user for the given user identifier (e.g. username or email).

This method must throw UserNotFoundException if the user is not found.

Parameters

string $identifier

Return Value

UserInterface

Exceptions

UserNotFoundException