内部换链V2
账号
密码
{ const data = await r.json(); if (!r.ok) throw new Error(data.detail || '登录失败'); localStorage.setItem('hl2_token', data.data.token); localStorage.setItem('hl2_user', JSON.stringify(data.data.user)); const next = new URLSearchParams(location.search).get('next') || '/layout.html'; location.href = next.startsWith('/') && !next.startsWith('//') ? next : '/layout.html'; }) .catch(e => message = e.message) " > 登录