1 | <?php namespace Limoncello\Passport\Package; |
||
27 | abstract class PassportSettings implements SettingsInterface |
||
28 | { |
||
29 | use CheckCallableTrait; |
||
30 | |||
31 | /** Config key */ |
||
32 | const KEY_ENABLE_LOGS = 0; |
||
33 | |||
34 | /** Config key */ |
||
35 | const KEY_APPROVAL_URI_STRING = self::KEY_ENABLE_LOGS + 1; |
||
36 | |||
37 | /** Config key */ |
||
38 | const KEY_ERROR_URI_STRING = self::KEY_APPROVAL_URI_STRING + 1; |
||
39 | |||
40 | /** Config key */ |
||
41 | const KEY_DEFAULT_CLIENT_ID = self::KEY_ERROR_URI_STRING + 1; |
||
42 | |||
43 | /** Config key */ |
||
44 | const KEY_CODE_EXPIRATION_TIME_IN_SECONDS = self::KEY_DEFAULT_CLIENT_ID + 1; |
||
45 | |||
46 | /** Config key */ |
||
47 | const KEY_TOKEN_EXPIRATION_TIME_IN_SECONDS = self::KEY_CODE_EXPIRATION_TIME_IN_SECONDS + 1; |
||
48 | |||
49 | /** Config key */ |
||
50 | const KEY_RENEW_REFRESH_VALUE_ON_TOKEN_REFRESH = self::KEY_TOKEN_EXPIRATION_TIME_IN_SECONDS + 1; |
||
51 | |||
52 | /** Config key */ |
||
53 | const KEY_USER_TABLE_NAME = self::KEY_RENEW_REFRESH_VALUE_ON_TOKEN_REFRESH + 1; |
||
54 | |||
55 | /** Config key */ |
||
56 | const KEY_USER_PRIMARY_KEY_NAME = self::KEY_USER_TABLE_NAME + 1; |
||
57 | |||
58 | /** Config key */ |
||
59 | const KEY_USER_CREDENTIALS_VALIDATOR = self::KEY_USER_PRIMARY_KEY_NAME + 1; |
||
60 | |||
61 | /** Config key */ |
||
62 | const KEY_FAILED_AUTHENTICATION_FACTORY = self::KEY_USER_CREDENTIALS_VALIDATOR + 1; |
||
63 | |||
64 | /** Config key */ |
||
65 | const KEY_USER_SCOPE_VALIDATOR = self::KEY_FAILED_AUTHENTICATION_FACTORY + 1; |
||
66 | |||
67 | /** Config key */ |
||
68 | const KEY_LAST = self::KEY_USER_SCOPE_VALIDATOR + 1; |
||
69 | |||
70 | /** |
||
71 | * @return string |
||
72 | */ |
||
73 | abstract protected function getApprovalUri(): string; |
||
74 | |||
75 | /** |
||
76 | * @return string |
||
77 | */ |
||
78 | abstract protected function getErrorUri(): string; |
||
79 | |||
80 | /** |
||
81 | * @return string |
||
82 | */ |
||
83 | abstract protected function getDefaultClientId(): string; |
||
84 | |||
85 | /** |
||
86 | * @return string |
||
87 | */ |
||
88 | abstract protected function getUserTableName(): string; |
||
89 | |||
90 | /** |
||
91 | * @return string |
||
92 | */ |
||
93 | abstract protected function getUserPrimaryKeyName(): string; |
||
94 | |||
95 | /** |
||
96 | * Should return static callable for user credentials validator (login and password). |
||
97 | * |
||
98 | * Examples ['SomeNamespace\ClassName', 'staticMethodName'] or 'SomeNamespace\ClassName::staticMethodName' |
||
99 | * |
||
100 | * Method signature |
||
101 | * |
||
102 | * public static function validateUser(ContainerInterface $container, string $userName, string $password): ?int |
||
103 | * |
||
104 | * which returns either user ID (int) or null if user not found/invalid credentials. |
||
105 | * |
||
106 | * @return callable |
||
107 | */ |
||
108 | abstract protected function getUserCredentialsValidator(): callable; |
||
109 | |||
110 | /** |
||
111 | * Should return static callable for user scope validator (allowed scope identities). |
||
112 | * |
||
113 | * Examples ['SomeNamespace\ClassName', 'staticMethodName'] or 'SomeNamespace\ClassName::staticMethodName' |
||
114 | * |
||
115 | * Method signature |
||
116 | * |
||
117 | * public static function validateScope(ContainerInterface $container, int $userId, array $scopeIds): ?array |
||
118 | * |
||
119 | * which returns either changed allowed scope IDs or null if scope was not changed or throws auth exception. |
||
120 | * |
||
121 | * @return callable |
||
122 | */ |
||
123 | abstract protected function getUserScopeValidator(): callable; |
||
124 | |||
125 | /** |
||
126 | * @inheritdoc |
||
127 | */ |
||
128 | public function get(): array |
||
163 | } |
||
164 |