chore: simplify admin login to email+password only
This commit is contained in:
22
web/app.js
22
web/app.js
@@ -1,5 +1,8 @@
|
|||||||
const $ = (id) => document.getElementById(id);
|
const $ = (id) => document.getElementById(id);
|
||||||
|
|
||||||
|
// Fixed API base for this deployment
|
||||||
|
const API_BASE = 'https://cfdav.fnos.workers.dev';
|
||||||
|
|
||||||
function log(msg) {
|
function log(msg) {
|
||||||
const el = $('log');
|
const el = $('log');
|
||||||
el.textContent = `[${new Date().toISOString()}] ${msg}\n` + el.textContent;
|
el.textContent = `[${new Date().toISOString()}] ${msg}\n` + el.textContent;
|
||||||
@@ -12,13 +15,8 @@ function getAuthHeader() {
|
|||||||
return `Basic ${token}`;
|
return `Basic ${token}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
function apiBase() {
|
|
||||||
const base = $('apiBase').value.trim();
|
|
||||||
return base ? base.replace(/\/$/, '') : '';
|
|
||||||
}
|
|
||||||
|
|
||||||
async function apiFetch(path, options = {}) {
|
async function apiFetch(path, options = {}) {
|
||||||
const url = apiBase() + path;
|
const url = API_BASE + path;
|
||||||
const headers = options.headers || {};
|
const headers = options.headers || {};
|
||||||
headers['Authorization'] = getAuthHeader();
|
headers['Authorization'] = getAuthHeader();
|
||||||
headers['Content-Type'] = 'application/json';
|
headers['Content-Type'] = 'application/json';
|
||||||
@@ -75,16 +73,6 @@ async function deleteUser(id) {
|
|||||||
await loadUsers();
|
await loadUsers();
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveSettings() {
|
|
||||||
localStorage.setItem('cfdav_api_base', $('apiBase').value.trim());
|
|
||||||
localStorage.setItem('cfdav_email', $('email').value.trim());
|
|
||||||
}
|
|
||||||
|
|
||||||
function loadSettings() {
|
|
||||||
$('apiBase').value = localStorage.getItem('cfdav_api_base') || '';
|
|
||||||
$('email').value = localStorage.getItem('cfdav_email') || '';
|
|
||||||
}
|
|
||||||
|
|
||||||
function setLoggedIn(state) {
|
function setLoggedIn(state) {
|
||||||
$('loginCard').classList.toggle('hidden', state);
|
$('loginCard').classList.toggle('hidden', state);
|
||||||
$('app').classList.toggle('hidden', !state);
|
$('app').classList.toggle('hidden', !state);
|
||||||
@@ -92,7 +80,6 @@ function setLoggedIn(state) {
|
|||||||
|
|
||||||
async function login() {
|
async function login() {
|
||||||
try {
|
try {
|
||||||
saveSettings();
|
|
||||||
await loadUsers();
|
await loadUsers();
|
||||||
setLoggedIn(true);
|
setLoggedIn(true);
|
||||||
log('Login success');
|
log('Login success');
|
||||||
@@ -113,5 +100,4 @@ $('refreshBtn').addEventListener('click', () => loadUsers().catch((e) => log(e.m
|
|||||||
$('createBtn').addEventListener('click', () => createUser().catch((e) => log(e.message)));
|
$('createBtn').addEventListener('click', () => createUser().catch((e) => log(e.message)));
|
||||||
$('logoutBtn').addEventListener('click', logout);
|
$('logoutBtn').addEventListener('click', logout);
|
||||||
|
|
||||||
loadSettings();
|
|
||||||
setLoggedIn(false);
|
setLoggedIn(false);
|
||||||
|
|||||||
@@ -12,10 +12,6 @@
|
|||||||
|
|
||||||
<section id="loginCard" class="card">
|
<section id="loginCard" class="card">
|
||||||
<h2>Login</h2>
|
<h2>Login</h2>
|
||||||
<div class="row">
|
|
||||||
<label>API Base URL</label>
|
|
||||||
<input id="apiBase" placeholder="https://cfdav.fnos.workers.dev" />
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<label>Email</label>
|
<label>Email</label>
|
||||||
<input id="email" placeholder="admin@example.com" />
|
<input id="email" placeholder="admin@example.com" />
|
||||||
@@ -25,7 +21,6 @@
|
|||||||
<input id="password" type="password" placeholder="******" />
|
<input id="password" type="password" placeholder="******" />
|
||||||
</div>
|
</div>
|
||||||
<button id="loginBtn">Login</button>
|
<button id="loginBtn">Login</button>
|
||||||
<p class="hint">提示:API Base 留空则默认同域(/api/admin)。</p>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section id="app" class="hidden">
|
<section id="app" class="hidden">
|
||||||
|
|||||||
Reference in New Issue
Block a user