Merge pull request #4920 from alexj11324/feat/passkey-auth

feat: add passkey authentication
This commit is contained in:
Wesley Liddick
2026-07-28 14:58:37 +08:00
committed by GitHub
55 changed files with 2485 additions and 12 deletions
@@ -127,6 +127,13 @@ export default {
'Please configure TOTP_ENCRYPTION_KEY in environment variables first. Generate a key with: openssl rand -hex 32'
},
security: {
passkey: 'Passkey Sign-in',
passkeyHint: 'Allow passwordless sign-in and user-managed passkeys when the relying party configuration is valid.',
passkeyConfigured: 'WebAuthn relying party configuration is valid.',
passkeyNotConfigured: 'Configure a valid RP ID and allowed HTTPS origins before enabling passkey sign-in.',
passkeyRPID: 'RP ID',
passkeyOrigins: 'Allowed HTTPS origins',
passkeyValueNotConfigured: 'Not configured',
stepUp: 'Step-up 2FA for Sensitive Operations',
stepUpHint: 'When enabled, sensitive operations (account/proxy export, backup creation and download, S3 config changes, promoting admins) require a recent TOTP verification (valid for 15 minutes). Your own account must have 2FA enabled before turning this on; turning it off also requires step-up verification.',
stepUpEnableRequiresTotp: 'Enable 2FA (TOTP) for your own account in Profile before turning on step-up verification.',
+4
View File
@@ -205,6 +205,10 @@ export default {
signInToAccount: 'Sign in to your account to continue',
signIn: 'Sign In',
signingIn: 'Signing in...',
passkeySignIn: 'Sign in with a passkey',
passkeySigningIn: 'Waiting for passkey...',
passkeyCancelled: 'Passkey sign-in was cancelled.',
passkeyFailed: 'Passkey sign-in failed. Please try again.',
createAccount: 'Create Account',
signUpToStart: 'Sign up to start using {siteName}',
signUp: 'Sign up',
+25
View File
@@ -690,6 +690,31 @@ export default {
codeSent: 'Verification code sent to your email',
sendCodeFailed: 'Failed to send verification code'
},
passkey: {
title: 'Passkeys',
description: 'Use Face ID, Touch ID, Windows Hello, or a security key to sign in without a password.',
add: 'Add passkey',
continue: 'Create passkey',
name: 'Passkey name',
namePlaceholder: 'For example, MacBook Touch ID',
passwordPlaceholder: 'Enter your current password to confirm',
empty: 'No passkeys are registered yet.',
synced: 'Synced',
createdAt: 'Created {date}',
lastUsed: 'Last used {date}',
featureDisabled: 'Passkeys have not been configured by the administrator.',
unsupported: 'This browser or device does not support passkeys.',
loadFailed: 'Failed to load passkeys.',
added: 'Passkey added.',
addFailed: 'Failed to add passkey.',
renamePrompt: 'Enter a new name for this passkey',
renamed: 'Passkey renamed.',
renameFailed: 'Failed to rename passkey.',
deleteTitle: 'Delete passkey',
deleteConfirm: 'Delete “{name}”? You will no longer be able to sign in with it.',
deleted: 'Passkey deleted.',
deleteFailed: 'Failed to delete passkey.'
},
balanceNotify: {
title: 'Balance Low Notification',
description: 'Send email alert when account balance falls below threshold',
@@ -127,6 +127,13 @@ export default {
'请先在环境变量中配置 TOTP_ENCRYPTION_KEY。使用命令 openssl rand -hex 32 生成密钥。'
},
security: {
passkey: 'Passkey 登录',
passkeyHint: '当依赖方配置有效时,允许无密码登录及用户自行管理 Passkey。',
passkeyConfigured: 'WebAuthn 依赖方配置有效。',
passkeyNotConfigured: '请先配置有效的 RP ID 与允许的 HTTPS 来源,再启用 Passkey 登录。',
passkeyRPID: 'RP ID',
passkeyOrigins: '允许的 HTTPS 来源',
passkeyValueNotConfigured: '未配置',
stepUp: '敏感操作二次验证 (step-up 2FA)',
stepUpHint: '开启后,账号/代理导出、备份创建与下载、S3 配置修改、提升管理员等敏感操作需要先完成 TOTP 二次验证(15 分钟内有效)。开启前需本人已启用 2FA;关闭该开关本身也需要二次验证。',
stepUpEnableRequiresTotp: '开启敏感操作二次验证前,请先在个人资料中为当前账号启用 2FA (TOTP)。',
+4
View File
@@ -205,6 +205,10 @@ export default {
signInToAccount: '登录您的账户以继续',
signIn: '登录',
signingIn: '登录中...',
passkeySignIn: '使用 Passkey 登录',
passkeySigningIn: '正在等待 Passkey...',
passkeyCancelled: '已取消 Passkey 登录。',
passkeyFailed: 'Passkey 登录失败,请重试。',
createAccount: '创建账户',
signUpToStart: '注册以开始使用 {siteName}',
signUp: '注册',
+25
View File
@@ -695,6 +695,31 @@ export default {
codeSent: '验证码已发送到您的邮箱',
sendCodeFailed: '发送验证码失败'
},
passkey: {
title: 'Passkey',
description: '使用面容 ID、触控 ID、Windows Hello 或安全密钥免密码登录。',
add: '添加 Passkey',
continue: '创建 Passkey',
name: 'Passkey 名称',
namePlaceholder: '例如:MacBook 触控 ID',
passwordPlaceholder: '输入当前登录密码以确认',
empty: '尚未添加任何 Passkey。',
synced: '已同步',
createdAt: '创建于 {date}',
lastUsed: '上次使用 {date}',
featureDisabled: '管理员尚未配置 Passkey 功能。',
unsupported: '当前浏览器或设备不支持 Passkey。',
loadFailed: '加载 Passkey 失败。',
added: 'Passkey 已添加。',
addFailed: '添加 Passkey 失败。',
renamePrompt: '请输入新的 Passkey 名称',
renamed: 'Passkey 已重命名。',
renameFailed: '重命名 Passkey 失败。',
deleteTitle: '删除 Passkey',
deleteConfirm: '删除“{name}”?删除后将无法再使用它登录。',
deleted: 'Passkey 已删除。',
deleteFailed: '删除 Passkey 失败。'
},
balanceNotify: {
title: '余额不足提醒',
description: '当账户余额低于阈值时发送邮件提醒',