Feature: add authoration key for built-in server

This commit is contained in:
Kuingsmile
2023-10-10 17:23:52 +08:00
parent 7e408082c7
commit 06c518d9ad
9 changed files with 44 additions and 7 deletions

View File

@@ -32,6 +32,18 @@ router.post('/upload', async ({
}): Promise<void> => {
try {
const picbed = urlparams?.get('picbed')
const passedKey = urlparams?.get('key')
const serverKey = picgo.getConfig('settings.serverKey') || ''
if (serverKey && passedKey !== serverKey) {
handleResponse({
response,
body: {
success: false,
message: 'server key is not correct'
}
})
return
}
let currentPicBedType = ''
let currentPicBedConfig = {} as IStringKeyMap
let currentPicBedConfigId = ''

View File

@@ -1055,6 +1055,16 @@
:placeholder="$T('SETTINGS_TIP_PLACEHOLDER_PORT')"
/>
</el-form-item>
<el-form-item
:label="$T('SETTINGS_SET_SERVER_KEY')"
>
<el-input
v-model="form.serverKey"
type="input"
:placeholder="$T('SETTINGS_TIP_PLACEHOLDER_KEY')"
@change="handleServerKeyChange"
/>
</el-form-item>
</template>
</el-form>
<template #footer>
@@ -1691,7 +1701,8 @@ const form = reactive<ISettingForm>({
shortUrlServer: 'c1n',
yourlsDomain: '',
yourlsSignature: '',
deleteLocalFile: false
deleteLocalFile: false,
serverKey: ''
})
const languageList = i18nManager.languageList.map(item => ({
@@ -1848,6 +1859,7 @@ async function initData () {
form.yourlsDomain = settings.yourlsDomain || ''
form.yourlsSignature = settings.yourlsSignature || ''
form.deleteLocalFile = settings.deleteLocalFile || false
form.serverKey = settings.serverKey || ''
currentLanguage.value = settings.language ?? 'zh-CN'
currentStartMode.value = settings.startMode || 'quiet'
customLink.value = settings.customLink || '![$fileName]($url)'
@@ -2100,6 +2112,10 @@ function cancelCheckVersion () {
checkUpdateVisible.value = false
}
function handleServerKeyChange (val: string) {
saveConfig('settings.serverKey', val)
}
function handleUploadNotification (val: ICheckBoxValueType) {
saveConfig({
'settings.uploadNotification': val

View File

@@ -195,8 +195,10 @@ interface ILocales {
SETTINGS_ENABLE_SERVER: string
SETTINGS_SET_SERVER_HOST: string
SETTINGS_SET_SERVER_PORT: string
SETTINGS_SET_SERVER_KEY: string
SETTINGS_TIP_PLACEHOLDER_HOST: string
SETTINGS_TIP_PLACEHOLDER_PORT: string
SETTINGS_TIP_PLACEHOLDER_KEY: string
SETTINGS_LOG_LEVEL_ALL: string
SETTINGS_LOG_LEVEL_SUCCESS: string
SETTINGS_LOG_LEVEL_ERROR: string

View File

@@ -27,7 +27,8 @@ interface ISettingForm {
shortUrlServer: string,
yourlsDomain: string,
yourlsSignature: string,
deleteLocalFile: boolean
deleteLocalFile: boolean,
serverKey: string
}
interface IShortKeyMap {