-
Notifications
You must be signed in to change notification settings - Fork 104
Expand file tree
/
Copy pathAuthenticationServiceInterface.php
More file actions
99 lines (88 loc) · 3.45 KB
/
AuthenticationServiceInterface.php
File metadata and controls
99 lines (88 loc) · 3.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
declare(strict_types=1);
/**
* CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
* @link https://cakephp.org CakePHP(tm) Project
* @since 1.0.0
* @license https://opensource.org/licenses/mit-license.php MIT License
*/
namespace Authentication;
use ArrayAccess;
use Authentication\Authenticator\AuthenticatorInterface;
use Authentication\Authenticator\PersistenceInterface;
use Authentication\Authenticator\ResultInterface;
use Psr\Http\Message\ServerRequestInterface;
interface AuthenticationServiceInterface extends PersistenceInterface
{
/**
* Loads an authenticator.
*
* @param string $name Name or class name.
* @param array<string, mixed> $config Authenticator configuration.
* @return \Authentication\Authenticator\AuthenticatorInterface
*/
public function loadAuthenticator(string $name, array $config = []): AuthenticatorInterface;
/**
* Authenticate the request against the configured authentication adapters.
*
* @param \Psr\Http\Message\ServerRequestInterface $request The request.
* @return \Authentication\Authenticator\ResultInterface The result object. If none of the adapters was a success
* the last failed result is returned.
*/
public function authenticate(ServerRequestInterface $request): ResultInterface;
/**
* Gets an identity object or null if identity has not been resolved.
*
* @return \Authentication\IdentityInterface|null
*/
public function getIdentity(): ?IdentityInterface;
/**
* Gets the successful authenticator instance if one was successful after calling authenticate
*
* @return \Authentication\Authenticator\AuthenticatorInterface|null
*/
public function getAuthenticationProvider(): ?AuthenticatorInterface;
/**
* Gets the result of the last authenticate() call.
*
* @return \Authentication\Authenticator\ResultInterface|null Authentication result interface
*/
public function getResult(): ?ResultInterface;
/**
* Return the name of the identity attribute.
*
* @return string
*/
public function getIdentityAttribute(): string;
/**
* Build an identity object from raw identity data.
*
* If the supplied data is already an `IdentityInterface`, it is returned
* unchanged.
*
* @param \ArrayAccess<string, mixed>|array<string, mixed> $identityData Identity data.
* @return \Authentication\IdentityInterface
*/
public function buildIdentity(ArrayAccess|array $identityData): IdentityInterface;
/**
* Return the URL to redirect unauthenticated users to.
*
* @param \Psr\Http\Message\ServerRequestInterface $request The request
* @return string|null
*/
public function getUnauthenticatedRedirectUrl(ServerRequestInterface $request): ?string;
/**
* Return the URL that an authenticated user came from or null.
*
* @param \Psr\Http\Message\ServerRequestInterface $request The request
* @return string|null
*/
public function getLoginRedirect(ServerRequestInterface $request): ?string;
}