Files
advertising-system/update_token.php

116 lines
3.4 KiB
PHP
Raw Permalink Normal View History

<?php
/**
* Umami Token 更新工具
* 用于手动更新或测试token获取功能
*/
// 配置信息(请根据实际情况修改)
$apiBaseUrl = 'https://um.com';
$username = 'your-username'; // 请替换为实际的用户名
$password = 'your-password'; // 请替换为实际的密码
$tokenFile = 'umami_token.json';
/**
* 获取新的Umami token
* @param string $apiBaseUrl API基础URL
* @param string $username 用户名
* @param string $password 密码
* @return array 包含token和状态信息的数组
*/
function getNewUmamiToken($apiBaseUrl, $username, $password) {
$loginUrl = "$apiBaseUrl/api/auth/login";
$loginData = json_encode([
'username' => $username,
'password' => $password
]);
$options = [
'http' => [
'method' => 'POST',
'header' => [
"Content-Type: application/json",
"Content-Length: " . strlen($loginData)
],
'content' => $loginData
]
];
$context = stream_context_create($options);
$response = @file_get_contents($loginUrl, false, $context);
if ($response === FALSE) {
return [
'success' => false,
'message' => 'Failed to connect to Umami API',
'token' => null
];
}
$responseData = json_decode($response, true);
if (isset($responseData['token'])) {
return [
'success' => true,
'message' => 'Token obtained successfully',
'token' => $responseData['token'],
'user_info' => $responseData['user'] ?? null
];
} else {
return [
'success' => false,
'message' => 'Invalid credentials or API response',
'token' => null,
'response' => $responseData
];
}
}
// 执行token获取
echo "正在获取新的Umami token...\n";
echo "API URL: $apiBaseUrl\n";
echo "Username: $username\n";
echo "\n";
$result = getNewUmamiToken($apiBaseUrl, $username, $password);
if ($result['success']) {
echo "✅ Token获取成功\n";
echo "Token: " . $result['token'] . "\n";
if (isset($result['user_info'])) {
echo "用户信息:\n";
echo " - ID: " . ($result['user_info']['id'] ?? 'N/A') . "\n";
echo " - Username: " . ($result['user_info']['username'] ?? 'N/A') . "\n";
echo " - Role: " . ($result['user_info']['role'] ?? 'N/A') . "\n";
}
// 保存token到缓存文件
$tokenData = [
'token' => $result['token'],
'timestamp' => time(),
'user_info' => $result['user_info'] ?? null
];
if (file_put_contents($tokenFile, json_encode($tokenData, JSON_PRETTY_PRINT))) {
echo "\n✅ Token已保存到缓存文件: $tokenFile\n";
} else {
echo "\n❌ 保存token到缓存文件失败\n";
}
} else {
echo "❌ Token获取失败\n";
echo "错误信息: " . $result['message'] . "\n";
if (isset($result['response'])) {
echo "API响应: " . json_encode($result['response'], JSON_PRETTY_PRINT) . "\n";
}
}
echo "\n";
echo "使用说明:\n";
echo "1. 请确保在文件顶部正确配置了API URL、用户名和密码\n";
echo "2. 确保Umami服务正常运行且网络连接正常\n";
echo "3. 如果获取失败,请检查用户名密码是否正确\n";
echo "4. Token将自动保存到 $tokenFile 文件中\n";
echo "5. info.php 会自动使用缓存的token\n";
?>