chore: 初始提交 - 移除所有硬编码凭据,统一从环境变量读取
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
;(function(){
|
||||
var of = window.fetch
|
||||
window.fetch = function(u, o){ o = o || {}; if (!o.credentials) o.credentials = 'include'; return of(u, o) }
|
||||
function ensureOverlay(){
|
||||
var el = document.getElementById('authOverlay')
|
||||
if (el) return el
|
||||
el = document.createElement('div')
|
||||
el.id = 'authOverlay'
|
||||
el.style.position = 'fixed'
|
||||
el.style.left = '0'
|
||||
el.style.top = '0'
|
||||
el.style.width = '100%'
|
||||
el.style.height = '100%'
|
||||
el.style.background = 'rgba(0,0,0,0.6)'
|
||||
el.style.display = 'none'
|
||||
el.style.alignItems = 'center'
|
||||
el.style.justifyContent = 'center'
|
||||
el.style.zIndex = '9999'
|
||||
var box = document.createElement('div')
|
||||
box.style.background = '#fff'
|
||||
box.style.borderRadius = '8px'
|
||||
box.style.padding = '16px'
|
||||
box.style.boxShadow = '0 6px 24px rgba(0,0,0,0.25)'
|
||||
box.style.minWidth = '280px'
|
||||
var t = document.createElement('div')
|
||||
t.textContent = '鉴权失败'
|
||||
t.style.fontSize = '18px'
|
||||
t.style.marginBottom = '8px'
|
||||
var b = document.createElement('button')
|
||||
b.id = 'btnRecheck'
|
||||
b.textContent = '重新校验'
|
||||
b.style.padding = '8px 12px'
|
||||
b.style.border = '1px solid #999'
|
||||
b.style.borderRadius = '4px'
|
||||
b.style.background = '#f7f7f7'
|
||||
box.appendChild(t); box.appendChild(b)
|
||||
el.appendChild(box)
|
||||
document.body.appendChild(el)
|
||||
return el
|
||||
}
|
||||
function show(){
|
||||
ensureOverlay().style.display = 'flex'
|
||||
var main = document.querySelector('.container')
|
||||
if (main) main.style.display = 'none'
|
||||
}
|
||||
function hide(){
|
||||
var el = ensureOverlay()
|
||||
el.style.display = 'none'
|
||||
var main = document.querySelector('.container')
|
||||
if (main) main.style.display = 'block'
|
||||
}
|
||||
function removeTokenFromUrl(){
|
||||
var q = location.search || ''
|
||||
if (q.indexOf('token=') >= 0) {
|
||||
var sp = new URLSearchParams(q)
|
||||
sp.delete('token')
|
||||
var nu = location.pathname + (sp.toString() ? ('?' + sp.toString()) : '') + location.hash
|
||||
history.replaceState(null, '', nu)
|
||||
}
|
||||
}
|
||||
function handshake(){ return fetch('/api/psc/auth/handshake').then(function(r){ if(!r.ok) throw 0 }) }
|
||||
function start(cfg){
|
||||
if (!cfg || !cfg.enableCookieAuth) return
|
||||
var params = new URLSearchParams(location.search||'')
|
||||
var tk = params.get('token')
|
||||
var p = tk ? fetch('/api/psc/auth/token?token=' + encodeURIComponent(tk)).then(function(r){ if(r.ok) removeTokenFromUrl() }).catch(function(){}) : Promise.resolve()
|
||||
p.then(function(){ handshake().then(function(){ hide() }).catch(function(){ show() }) })
|
||||
var btn = document.getElementById('btnRecheck')
|
||||
if (btn) btn.onclick = function(){ handshake().then(function(){ hide() }).catch(function(){ show() }) }
|
||||
}
|
||||
function loadCfg(){ return fetch('auth_config.json').then(function(r){ return r.json() }).catch(function(){ return { enableCookieAuth: true } }) }
|
||||
document.addEventListener('DOMContentLoaded', function(){ loadCfg().then(start) })
|
||||
})()
|
||||
Reference in New Issue
Block a user