| <?php |
| session_start(); |
| require_once '../../db.php'; |
|
|
| if (!isset($_SESSION['user_id'])) { |
| echo json_encode(['success' => false, 'message' => 'Not logged in']); |
| exit; |
| } |
|
|
| if ($_SERVER['REQUEST_METHOD'] === 'POST') { |
| $user_id = $_SESSION['user_id']; |
| $name = trim($_POST['name']); |
| $permissions = isset($_POST['permissions']) ? implode(',', $_POST['permissions']) : ''; |
| $expiry_days = (int) $_POST['expiry']; |
|
|
| |
| $token = 'mw_ak_' . bin2hex(random_bytes(16)); |
|
|
| |
| $expires_at = date('Y-m-d H:i:s', strtotime("+$expiry_days days")); |
|
|
| $sql = "INSERT INTO access_tokens (user_id, name, token, permissions, expires_at) VALUES (?, ?, ?, ?, ?)"; |
| $stmt = $conn->prepare($sql); |
| $stmt->bind_param("issss", $user_id, $name, $token, $permissions, $expires_at); |
|
|
| if ($stmt->execute()) { |
| echo json_encode([ |
| 'success' => true, |
| 'token' => $token, |
| 'expires_at' => $expires_at |
| ]); |
| } else { |
| echo json_encode(['success' => false, 'message' => 'Database error']); |
| } |
| } |
|
|