File size: 1,100 Bytes
0dff816 |
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 |
<?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'];
// Generate random token
$token = 'mw_ak_' . bin2hex(random_bytes(16));
// Expiry date
$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']);
}
}
|