1: <?php
2:
3: /**
4: * This file is part of the Nette Framework (https://nette.org)
5: *
6: * Copyright (c) 2004 David Grudl (http://davidgrudl.com)
7: *
8: * For the full copyright and license information, please view
9: * the file license.txt that was distributed with this source code.
10: */
11:
12: namespace Nette\Security;
13:
14: use Nette;
15:
16:
17:
18: /**
19: * Performs authentication.
20: *
21: * @author David Grudl
22: */
23: interface IAuthenticator
24: {
25: /**#@+ Credential key */
26: const USERNAME = 'username';
27: const PASSWORD = 'password';
28: /**#@-*/
29:
30: /**#@+ Exception error code */
31: const IDENTITY_NOT_FOUND = 1;
32: const INVALID_CREDENTIAL = 2;
33: const FAILURE = 3;
34: const NOT_APPROVED = 4;
35: /**#@-*/
36:
37: /**
38: * Performs an authentication against e.g. database.
39: * and returns IIdentity on success or throws AuthenticationException
40: * @param array
41: * @return IIdentity
42: * @throws AuthenticationException
43: */
44: function authenticate(array $credentials);
45:
46: }
47: