Files
bookmarkly2/api/generate_token.php
2025-09-28 16:05:53 +02:00

34 lines
986 B
PHP

<?php
require_once '../include/init.php';
require_once '../include/auth.php'; // ensures user is logged in and is admin
header('Content-Type: application/json');
if (!isAdmin()) {
http_response_code(403); // Forbidden
echo json_encode(['error' => 'You do not have permission to perform this action.']);
exit;
}
$tab_id = $_POST['tab_id'] ?? null;
if (!$tab_id) {
http_response_code(400); // Bad Request
echo json_encode(['error' => 'Tab ID is required.']);
exit;
}
try {
// Generate a unique token
$token = bin2hex(random_bytes(16));
// Store the token in the database
$stmt = $pdo->prepare("UPDATE tabs SET login_token = ? WHERE id = ?");
$stmt->execute([$token, $tab_id]);
echo json_encode(['success' => true, 'token' => $token]);
} catch (Exception $e) {
http_response_code(500); // Internal Server Error
echo json_encode(['error' => 'Failed to generate token: ' . $e->getMessage()]);
}