* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Security\Guard; use Symfony\Component\HttpFoundation\Request; /** * The interface for all "guard" authenticators. * * The methods on this interface are called throughout the guard authentication * process to give you the power to control most parts of the process from * one location. * * @author Ryan Weaver * @author Amaury Leroux de Lens */ interface AuthenticatorInterface extends GuardAuthenticatorInterface { /** * Does the authenticator support the given Request? * * If this returns false, the authenticator will be skipped. * * @return bool */ public function supports(Request $request); /** * Get the authentication credentials from the request and return them * as any type (e.g. an associate array). * * Whatever value you return here will be passed to getUser() and checkCredentials() * * For example, for a form login, you might: * * return [ * 'username' => $request->request->get('_username'), * 'password' => $request->request->get('_password'), * ]; * * Or for an API token that's on a header, you might use: * * return ['api_key' => $request->headers->get('X-API-TOKEN')]; * * @return mixed Any non-null value * * @throws \UnexpectedValueException If null is returned */ public function getCredentials(Request $request); }