Initial commit: Telegram Management System
Some checks failed
Deploy / deploy (push) Has been cancelled
Some checks failed
Deploy / deploy (push) Has been cancelled
Full-stack web application for Telegram management - Frontend: Vue 3 + Vben Admin - Backend: NestJS - Features: User management, group broadcast, statistics 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
97
marketing-agent/frontend/public/login-test.html
Normal file
97
marketing-agent/frontend/public/login-test.html
Normal file
@@ -0,0 +1,97 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Login Test</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
|
||||
<style>
|
||||
body { font-family: Arial, sans-serif; padding: 20px; }
|
||||
input { margin: 5px 0; padding: 5px; width: 200px; }
|
||||
button { margin: 10px 0; padding: 10px 20px; background: #4CAF50; color: white; border: none; cursor: pointer; }
|
||||
button:hover { background: #45a049; }
|
||||
.result { margin-top: 20px; padding: 10px; border: 1px solid #ddd; }
|
||||
.error { color: red; }
|
||||
.success { color: green; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Login Test</h1>
|
||||
|
||||
<div>
|
||||
<input type="text" id="username" value="admin" placeholder="Username"><br>
|
||||
<input type="password" id="password" value="admin123456" placeholder="Password"><br>
|
||||
<button onclick="login()">Login</button>
|
||||
</div>
|
||||
|
||||
<div id="result" class="result"></div>
|
||||
|
||||
<script>
|
||||
async function login() {
|
||||
const username = document.getElementById('username').value;
|
||||
const password = document.getElementById('password').value;
|
||||
const resultDiv = document.getElementById('result');
|
||||
|
||||
try {
|
||||
// Login
|
||||
const response = await axios.post('/api/v1/auth/login', {
|
||||
username: username,
|
||||
password: password
|
||||
});
|
||||
|
||||
console.log('Login response:', response.data);
|
||||
|
||||
if (response.data.success) {
|
||||
const token = response.data.data.accessToken;
|
||||
const user = response.data.data.user;
|
||||
|
||||
resultDiv.innerHTML = `
|
||||
<div class="success">
|
||||
<h3>Login Successful!</h3>
|
||||
<p>User: ${user.username} (${user.role})</p>
|
||||
<p>Token stored in localStorage</p>
|
||||
<button onclick="testDashboard()">Test Dashboard Access</button>
|
||||
<button onclick="goToApp()">Go to Application</button>
|
||||
</div>
|
||||
`;
|
||||
|
||||
// Store token
|
||||
localStorage.setItem('token', token);
|
||||
localStorage.setItem('refreshToken', response.data.data.refreshToken);
|
||||
} else {
|
||||
resultDiv.innerHTML = `<div class="error">Login failed: ${response.data.error}</div>`;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Login error:', error);
|
||||
resultDiv.innerHTML = `<div class="error">Error: ${error.message}</div>`;
|
||||
}
|
||||
}
|
||||
|
||||
async function testDashboard() {
|
||||
const token = localStorage.getItem('token');
|
||||
if (!token) {
|
||||
alert('No token found!');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await axios.get('/api/v1/analytics/dashboard', {
|
||||
headers: {
|
||||
'Authorization': `Bearer ${token}`
|
||||
}
|
||||
});
|
||||
|
||||
console.log('Dashboard data:', response.data);
|
||||
alert('Dashboard access successful! Check console for data.');
|
||||
} catch (error) {
|
||||
console.error('Dashboard error:', error);
|
||||
alert('Dashboard error: ' + error.message);
|
||||
}
|
||||
}
|
||||
|
||||
function goToApp() {
|
||||
window.location.href = '/';
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user