런처 관리자 증표 응답 추가
This commit is contained in:
1 parent
b22dfd5632
commit
6f17b15f4b
1 file changed
+18
-1
@@ -27,6 +27,19 @@ function launcher_is_digit_password(string $password): bool
|
|||||||
return preg_match('/^\d{4}$/', $password) === 1;
|
return preg_match('/^\d{4}$/', $password) === 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function launcher_admin_assertion(array $config): string
|
||||||
|
{
|
||||||
|
$body = base64_encode(json_encode([
|
||||||
|
'aud' => 'car-monitor',
|
||||||
|
'admin' => true,
|
||||||
|
'iat' => time(),
|
||||||
|
'exp' => time() + 120,
|
||||||
|
], JSON_UNESCAPED_SLASHES));
|
||||||
|
$sig = hash_hmac('sha256', $body, (string)($config['auth']['secret'] ?? ''));
|
||||||
|
|
||||||
|
return $body . '.' . $sig;
|
||||||
|
}
|
||||||
|
|
||||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
$data = custom_read_request_data();
|
$data = custom_read_request_data();
|
||||||
$action = $data['action'] ?? 'login';
|
$action = $data['action'] ?? 'login';
|
||||||
@@ -114,7 +127,11 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
|||||||
if ($isAdmin) {
|
if ($isAdmin) {
|
||||||
custom_issue_auth_cookie(true);
|
custom_issue_auth_cookie(true);
|
||||||
}
|
}
|
||||||
custom_json(['admin' => $isAdmin, 'authenticated' => $isAdmin]);
|
custom_json([
|
||||||
|
'admin' => $isAdmin,
|
||||||
|
'authenticated' => $isAdmin,
|
||||||
|
'assertion' => $isAdmin ? launcher_admin_assertion($config) : '',
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($_GET['failMessages'])) {
|
if (isset($_GET['failMessages'])) {
|
||||||
|
|||||||
Reference in new issue
Block a user