mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced.git
synced 2026-08-12 17:10:37 +00:00
58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
// 易盾反作弊 Token 注册端点
|
||
// 调用后获取实时 token 并存入共享存储,供后续带 checkToken 的请求使用
|
||
//
|
||
// GET /register/checktoken → 返回当前 token(尚无则自动获取)
|
||
// POST /register/checktoken → 强制刷新 token
|
||
// GET /register/checktoken?refresh=1 → 强制刷新
|
||
//
|
||
const { default: axios } = require('axios')
|
||
const { APP_CONF } = require('../util/config.json')
|
||
|
||
const URL = APP_CONF.dunDomainV2 + '/v2/config/js?pn=YD00000558929251'
|
||
let _token = ''
|
||
|
||
async function fetch() {
|
||
const res = await axios.get(URL, { timeout: 10000 })
|
||
const data = res.data
|
||
if (data && data.code === 200 && data.result && data.result.conf) {
|
||
return data.result.conf
|
||
}
|
||
throw new Error('易盾返回异常: ' + JSON.stringify(data).substring(0, 200))
|
||
}
|
||
|
||
// 端点处理
|
||
module.exports = async (query) => {
|
||
const refresh = query.refresh === '1' || query.refresh === 'true'
|
||
let token = refresh ? null : _token
|
||
if (!token) {
|
||
token = await fetch()
|
||
_token = token
|
||
}
|
||
return {
|
||
status: 200,
|
||
body: { code: 200, token, registered: !!token },
|
||
}
|
||
}
|
||
|
||
// 模块加载时自动获取一次 Token,确保 request.js 使用时不为空
|
||
fetch()
|
||
.then((token) => {
|
||
_token = token
|
||
})
|
||
.catch(() => {
|
||
// 静默失败,后续请求时会重试
|
||
})
|
||
|
||
// 给 request.js 读取用
|
||
module.exports.getToken = () => {
|
||
if (!_token) {
|
||
// 如果 Token 为空,异步触发获取
|
||
fetch()
|
||
.then((token) => {
|
||
_token = token
|
||
})
|
||
.catch(() => {})
|
||
}
|
||
return _token
|
||
}
|