mirror of
https://github.com/MarSeventh/CloudFlare-ImgBed.git
synced 2026-05-04 02:46:51 +00:00
v2beta
This commit is contained in:
80
functions/api/manage/sysConfig/security.js
Normal file
80
functions/api/manage/sysConfig/security.js
Normal file
@@ -0,0 +1,80 @@
|
||||
export async function onRequest(context) {
|
||||
// 安全设置相关,GET方法读取设置,POST方法保存设置
|
||||
const {
|
||||
request, // same as existing Worker API
|
||||
env, // same as existing Worker API
|
||||
params, // if filename includes [id] or [[path]]
|
||||
waitUntil, // same as ctx.waitUntil in existing Worker API
|
||||
next, // used for middleware or to fetch assets
|
||||
data, // arbitrary space for passing data between middlewares
|
||||
} = context;
|
||||
|
||||
const kv = env.img_url
|
||||
|
||||
// GET读取设置
|
||||
if (request.method === 'GET') {
|
||||
const settings = await getSecurityConfig(kv, env)
|
||||
|
||||
return new Response(JSON.stringify(settings), {
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// POST保存设置
|
||||
if (request.method === 'POST') {
|
||||
const body = await request.json()
|
||||
const settings = body
|
||||
|
||||
// 写入 KV
|
||||
await kv.put('manage@sysConfig@security', JSON.stringify(settings))
|
||||
|
||||
return new Response(JSON.stringify(settings), {
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export async function getSecurityConfig(kv, env) {
|
||||
const settings = {}
|
||||
// 读取KV中的设置
|
||||
const settingsStr = await kv.get('manage@sysConfig@security')
|
||||
const settingsKV = settingsStr ? JSON.parse(settingsStr) : {}
|
||||
|
||||
// 认证管理
|
||||
const auth = {
|
||||
user: {
|
||||
authCode: env.AUTH_CODE
|
||||
},
|
||||
admin: {
|
||||
adminUsername: env.BASIC_USER,
|
||||
adminPassword: env.BASIC_PASS,
|
||||
}
|
||||
}
|
||||
settings.auth = auth
|
||||
|
||||
// 上传管理
|
||||
const upload = {
|
||||
moderate: {
|
||||
channel: 'moderatecontent.com',
|
||||
apiKey: env.ModerateContentApiKey,
|
||||
}
|
||||
}
|
||||
settings.upload = upload
|
||||
|
||||
// 访问管理
|
||||
const access = {
|
||||
allowedDomains: env.ALLOWED_DOMAINS,
|
||||
whiteListMode: env.WhiteList_Mode === 'true',
|
||||
}
|
||||
settings.access = access
|
||||
|
||||
// 用 KV 中的设置覆盖默认设置
|
||||
Object.assign(settings, settingsKV)
|
||||
|
||||
return settings;
|
||||
}
|
||||
Reference in New Issue
Block a user