check whether api token is enabled when using an api token

This commit is contained in:
MaysWind
2025-11-03 22:52:15 +08:00
parent b0e01d36ab
commit 03c342f6f6
26 changed files with 162 additions and 143 deletions
+1 -1
View File
@@ -19,7 +19,7 @@ export function isUserForgetPasswordEnabled(): boolean {
return getServerSetting('f') === 1;
}
export function isGenerateAPITokenEnabled(): boolean {
export function isAPITokenEnabled(): boolean {
return getServerSetting('t') === 1;
}
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "Token ist leer",
"email verify token is invalid or expired": "E-Mail-Verifizierungstoken ist ungültig oder abgelaufen",
"password reset token is invalid or expired": "Passwort-Zurücksetzungstoken ist ungültig oder abgelaufen",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "Passcode ist ungültig",
"two-factor backup code is invalid": "Zwei-Faktor-Backup-Code ist ungültig",
"two-factor is not enabled": "Zwei-Faktor-Authentifizierung ist nicht aktiviert",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "Token is empty",
"email verify token is invalid or expired": "Email verify token is invalid or expired",
"password reset token is invalid or expired": "Password reset token is invalid or expired",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "Passcode is invalid",
"two-factor backup code is invalid": "Two-factor backup code is invalid",
"two-factor is not enabled": "Two-factor is not enabled",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "El token está vacío.",
"email verify token is invalid or expired": "El token de verificación de correo electrónico no es válido o ha caducado",
"password reset token is invalid or expired": "El token de restablecimiento de contraseña no es válido o ha caducado",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "El código de acceso no es válido",
"two-factor backup code is invalid": "El código de respaldo de dos factores no es válido",
"two-factor is not enabled": "El doble factor no está habilitado",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "Le token est vide",
"email verify token is invalid or expired": "Le token de vérification d'email est invalide ou expiré",
"password reset token is invalid or expired": "Le token de réinitialisation de mot de passe est invalide ou expiré",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "Le code d'accès est invalide",
"two-factor backup code is invalid": "Le code de sauvegarde à deux facteurs est invalide",
"two-factor is not enabled": "L'authentification à deux facteurs n'est pas activée",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "Token vuoto",
"email verify token is invalid or expired": "Il token di verifica email non è valido o è scaduto",
"password reset token is invalid or expired": "Il token di reimpostazione della password non è valido o è scaduto",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "Passcode non valido",
"two-factor backup code is invalid": "Codice di backup a due fattori non valido",
"two-factor is not enabled": "L'autenticazione a due fattori non è abilitata",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "トークンを記入してください",
"email verify token is invalid or expired": "メール認証トークンが無効または期限切れです",
"password reset token is invalid or expired": "パスワードリセットトークンが無効または期限切れです",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "パスコードが無効です",
"two-factor backup code is invalid": "二要素バックアップコードが無効です",
"two-factor is not enabled": "二要素が有効になっていません",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "토큰이 비어 있습니다",
"email verify token is invalid or expired": "이메일 확인 토큰이 유효하지 않거나 만료되었습니다",
"password reset token is invalid or expired": "비밀번호 재설정 토큰이 유효하지 않거나 만료되었습니다",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "일회용 비밀번호가 유효하지 않습니다",
"two-factor backup code is invalid": "2단계 백업 코드가 유효하지 않습니다",
"two-factor is not enabled": "2단계 인증이 활성화되지 않았습니다",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "Token is leeg",
"email verify token is invalid or expired": "E-mailverificatietoken is ongeldig of verlopen",
"password reset token is invalid or expired": "Wachtwoord-resettoken is ongeldig of verlopen",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "Verificatiecode is ongeldig",
"two-factor backup code is invalid": "Back-upcode voor twee-stapsverificatie is ongeldig",
"two-factor is not enabled": "Twee-stapsverificatie is niet ingeschakeld",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "Token está vazio",
"email verify token is invalid or expired": "O token de verificação de e-mail é inválido ou expirado",
"password reset token is invalid or expired": "O token de redefinição de senha é inválido ou expirado",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "Código é inválido",
"two-factor backup code is invalid": "Código de backup de duas etapas é inválido",
"two-factor is not enabled": "Autenticação em duas etapas não está ativada",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "Токен пуст",
"email verify token is invalid or expired": "Токен подтверждения электронной почты недействителен или истек",
"password reset token is invalid or expired": "Токен сброса пароля недействителен или истек",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "Код доступа недействителен",
"two-factor backup code is invalid": "Резервный код двухфакторной аутентификации недействителен",
"two-factor is not enabled": "Двухфакторная аутентификация не включена",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "โทเค็นว่างเปล่า",
"email verify token is invalid or expired": "โทเค็นยืนยันอีเมลไม่ถูกต้องหรือหมดอายุ",
"password reset token is invalid or expired": "โทเค็นรีเซ็ตรหัสผ่านไม่ถูกต้องหรือหมดอายุ",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "รหัสผ่านชั่วคราวไม่ถูกต้อง",
"two-factor backup code is invalid": "รหัสสำรองสองขั้นตอนไม่ถูกต้อง",
"two-factor is not enabled": "ยังไม่ได้เปิดใช้งานการยืนยันสองขั้นตอน",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "Токен порожній",
"email verify token is invalid or expired": "Токен підтвердження електронної пошти недійсний або прострочений",
"password reset token is invalid or expired": "Токен скидання пароля недійсний або прострочений",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "Код доступу недійсний",
"two-factor backup code is invalid": "Резервний код двофакторної автентифікації недійсний",
"two-factor is not enabled": "Двофакторна автентифікація не увімкнена",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "Mã thông báo trống",
"email verify token is invalid or expired": "Mã thông báo xác minh email không hợp lệ hoặc đã hết hạn",
"password reset token is invalid or expired": "Mã thông báo đặt lại mật khẩu không hợp lệ hoặc đã hết hạn",
"not allowed to generate api token": "Not allowed to generate API token",
"api token is not enabled": "API token is not enabled",
"passcode is invalid": "Mã số không hợp lệ",
"two-factor backup code is invalid": "Mã sao lưu hai yếu tố không hợp lệ",
"two-factor is not enabled": "Xác thực hai yếu tố chưa được bật",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "认证令牌为空",
"email verify token is invalid or expired": "邮箱验证令牌无效或已过期",
"password reset token is invalid or expired": "密码重置令牌无效或已过期",
"not allowed to generate api token": "不允许生成 API 认证令牌",
"api token is not enabled": "API 令牌没有启用",
"passcode is invalid": "验证码无效",
"two-factor backup code is invalid": "两步验证备用码无效",
"two-factor is not enabled": "两步验证没有启用",
+1 -1
View File
@@ -1109,7 +1109,7 @@
"token is empty": "驗證令牌為空",
"email verify token is invalid or expired": "電子郵件驗證令牌無效或已過期",
"password reset token is invalid or expired": "密碼重設令牌無效或已過期",
"not allowed to generate api token": "不允許產生 API 認證令牌",
"api token is not enabled": "API 令牌未啟用",
"passcode is invalid": "驗證碼無效",
"two-factor backup code is invalid": "二步驟驗證備用碼無效",
"two-factor is not enabled": "二步驟驗證沒有啟用",
@@ -123,7 +123,7 @@ import { useTokensStore } from '@/stores/token.ts';
import { type NameValue } from '@/core/base.ts';
import { type TokenGenerateMCPResponse } from '@/models/token.ts';
import { isGenerateAPITokenEnabled, isMCPServerEnabled } from '@/lib/server_settings.ts';
import { isAPITokenEnabled, isMCPServerEnabled } from '@/lib/server_settings.ts';
import { copyTextToClipboard } from '@/lib/ui/common.ts';
type SnackBarType = InstanceType<typeof SnackBar>;
@@ -139,7 +139,7 @@ let resolveFunc: (() => void) | null = null;
let rejectFunc: ((reason?: unknown) => void) | null = null;
const showState = ref<boolean>(false);
const tokenType = ref<'api' | 'mcp'>(isGenerateAPITokenEnabled() ? 'api' : (isMCPServerEnabled() ? 'mcp' : 'api'));
const tokenType = ref<'api' | 'mcp'>(isAPITokenEnabled() ? 'api' : (isMCPServerEnabled() ? 'mcp' : 'api'));
const tokenExpirationTime = ref<number>(86400);
const tokenCustomExpirationTime = ref<number>(86400);
const currentPassword = ref<string>('');
@@ -151,7 +151,7 @@ const generatedToken = ref<string>('');
const tokenTypeOptions = computed<NameValue[]>(() => {
const options: NameValue[] = [];
if (isGenerateAPITokenEnabled()) {
if (isAPITokenEnabled()) {
options.push({ name: tt('API Token'), value: 'api' });
}
@@ -179,7 +179,7 @@ const mcpServerConfiguration = computed<string>(() => {
function open(): Promise<void> {
showState.value = true;
currentPassword.value = '';
tokenType.value = isGenerateAPITokenEnabled() ? 'api' : (isMCPServerEnabled() ? 'mcp' : 'api');
tokenType.value = isAPITokenEnabled() ? 'api' : (isMCPServerEnabled() ? 'mcp' : 'api');
tokenExpirationTime.value = 86400;
tokenCustomExpirationTime.value = 86400;
generating.value = false;
@@ -132,7 +132,7 @@
<div class="d-flex align-center">
<span>{{ tt('Device & Sessions') }}</span>
<v-btn class="ms-3" density="compact" color="default" variant="outlined"
@click="generateToken" v-if="isGenerateAPITokenEnabled() || isMCPServerEnabled()">{{ tt('Generate Token') }}</v-btn>
@click="generateToken" v-if="isAPITokenEnabled() || isMCPServerEnabled()">{{ tt('Generate Token') }}</v-btn>
<v-btn density="compact" color="default" variant="text" size="24"
class="ms-2" :icon="true" :loading="loadingSession" @click="reloadSessions(false)">
<template #loader>
@@ -218,7 +218,7 @@ import { type TokenInfoResponse, SessionDeviceType, SessionInfo } from '@/models
import { isEquals } from '@/lib/common.ts';
import { parseSessionInfo } from '@/lib/session.ts';
import {
isGenerateAPITokenEnabled,
isAPITokenEnabled,
isOAuth2Enabled,
getOAuth2Provider,
getOIDCCustomDisplayNames,