const VerifyPage = {
async render() {
const params = new URLSearchParams((location.hash.split('?')[1] || ''));
const token = params.get('token');
if (token) {
return `
`;
}
return ``;
},
mount() {
const params = new URLSearchParams((location.hash.split('?')[1] || ''));
const token = params.get('token');
if (token) {
this.verifyToken(token);
return;
}
document.getElementById('verify-form').addEventListener('submit', async e => {
e.preventDefault();
const code = document.getElementById('vf-code').value.trim();
const msg = document.getElementById('vf-msg');
try {
const r = await API.post('/auth/verify-email', { code });
msg.className = 'alert alert-s'; msg.textContent = r.message || '验证成功';
msg.classList.remove('hidden');
setTimeout(() => location.hash = '#/login', 2000);
} catch(ex) {
msg.className = 'alert alert-e'; msg.textContent = ex.message;
msg.classList.remove('hidden');
}
});
},
async verifyToken(token) {
const msg = document.getElementById('vf-msg');
try {
const r = await API.post('/auth/verify-email', { code: token });
msg.className = 'alert alert-s'; msg.textContent = r.message || '验证成功';
setTimeout(() => location.hash = '#/login', 2000);
} catch (ex) {
msg.className = 'alert alert-e'; msg.textContent = ex.message;
}
}
};