feat: 添加 TOTP 2FA 功能

This commit is contained in:
mofeng-git
2026-07-17 16:34:06 +08:00
parent fdea52d59d
commit 8bd16df6f8
27 changed files with 1505 additions and 54 deletions

View File

@@ -74,6 +74,15 @@ export default {
forgotPassword: 'Forgot password',
forgotPasswordHint:
'Forgot your password? On the host running One-KVM, open a terminal and run one-kvm user set-password, then enter and confirm the new password when prompted.',
totpPrompt: 'Enter the code from your authenticator app',
totpCode: 'Authenticator code',
totpCodePlaceholder: '6-digit code',
enterTotpCode: 'Enter a 6-digit authenticator code',
invalidTotpCode: 'The authenticator code is incorrect',
totpChallengeExpired: 'This login attempt has expired. Enter your password again.',
totpRateLimited: 'Too many incorrect codes. Wait one minute, then sign in again.',
verifyAndLogin: 'Verify and login',
backToPassword: 'Back to password',
},
status: {
connected: 'Connected',
@@ -469,6 +478,29 @@ export default {
newPassword: 'New Password',
usernameDesc: 'Change the console login username',
passwordDesc: 'Change the console login password',
totp: {
title: 'Two-factor authentication',
description: 'Require an authenticator code when signing in to the web console',
serverTime: 'Server time',
localTime: 'Local time',
clockOffset: 'Clock offset: {seconds} seconds',
clockDriftWarning: 'The server and this device differ by at least 30 seconds. Codes may fail until their clocks are corrected.',
enable: 'Enable 2FA',
disable: 'Disable 2FA',
enableTitle: 'Set up two-factor authentication',
disableTitle: 'Disable two-factor authentication',
manualSecret: 'Manual setup key',
secretOneTime: 'This key is shown only during setup. Store it in your authenticator now.',
enterSixDigitCode: 'Enter a 6-digit authenticator code',
currentPasswordIncorrect: 'The current password is incorrect',
invalidCode: 'The authenticator code is incorrect',
enrollmentExpired: 'Setup expired. Enter your password to start again.',
rateLimited: 'Too many incorrect codes. Wait one minute and try again.',
alreadyEnabled: 'Two-factor authentication is already enabled',
notEnabled: 'Two-factor authentication is not enabled',
operationFailed: 'Unable to update two-factor authentication',
loadFailed: 'Unable to load two-factor authentication status',
},
httpPort: 'HTTP Port',
httpsPort: 'HTTPS Port',
bindAddress: 'Bind Address',