feat: add passkey-based two-factor authentication

This commit is contained in:
shuaiplus
2026-07-05 14:51:11 +08:00
parent f63b745d05
commit c019c93726
31 changed files with 1540 additions and 116 deletions
+17
View File
@@ -806,6 +806,23 @@ const en: Record<string, string> = {
"txt_password_hint_too_long": "Password hint must be 120 characters or fewer",
"txt_passkey": "Passkey",
"txt_passkeys": "Passkeys",
"txt_register": "Register",
"txt_key_list": "Key list",
"txt_select_another_verification_method": "Select another verification method",
"txt_select_two_step_login_method": "Select two-step login method",
"txt_two_step_passkeys": "Passkey two-step login",
"txt_two_step_passkeys_help": "Manage passkeys used only for two-step login.",
"txt_two_step_passkey_name_placeholder": "Security key",
"txt_add_two_step_passkey": "Add passkey",
"txt_two_step_passkey_added": "Passkey two-step login updated",
"txt_two_step_passkey_removed": "Passkey removed",
"txt_two_step_passkeys_disabled": "Passkey two-step login disabled",
"txt_disable_passkey_two_step_failed": "Failed to disable passkey two-step login",
"txt_use_passkey_to_complete_two_step_verification": "Use your passkey to complete two-step verification.",
"txt_touch_your_passkey_when_prompted": "Continue and approve the browser passkey prompt.",
"txt_no_two_step_passkeys": "No two-step passkeys",
"txt_remove_last_passkey_hint": "Disable passkey two-step login to remove the last key.",
"txt_passkey_setup_failed": "Passkey setup failed",
"txt_passkey_created_at_value": "Created on {value}",
"txt_account_passkey": "Account passkey",
"txt_account_passkeys": "Account passkeys",
+17
View File
@@ -806,6 +806,23 @@ const es: Record<string, string> = {
"txt_password_hint_too_long": "La pista de contraseña debe tener 120 caracteres o menos",
"txt_passkey": "Clave de acceso",
"txt_passkeys": "Claves de acceso",
"txt_register": "Registrar",
"txt_key_list": "Lista de claves",
"txt_select_another_verification_method": "Seleccionar otro método de verificación",
"txt_select_two_step_login_method": "Seleccionar método de inicio de sesión en dos pasos",
"txt_two_step_passkeys": "Inicio de sesión en dos pasos con clave de acceso",
"txt_two_step_passkeys_help": "Administra claves de acceso usadas solo para el inicio de sesión en dos pasos.",
"txt_two_step_passkey_name_placeholder": "Llave de seguridad",
"txt_add_two_step_passkey": "Agregar clave de acceso",
"txt_two_step_passkey_added": "Inicio de sesión en dos pasos con clave de acceso actualizado",
"txt_two_step_passkey_removed": "Clave de acceso eliminada",
"txt_two_step_passkeys_disabled": "Inicio de sesión en dos pasos con clave de acceso desactivado",
"txt_disable_passkey_two_step_failed": "No se pudo desactivar el inicio de sesión en dos pasos con clave de acceso",
"txt_use_passkey_to_complete_two_step_verification": "Usa tu clave de acceso para completar la verificación en dos pasos.",
"txt_touch_your_passkey_when_prompted": "Continúa y aprueba la solicitud de clave de acceso del navegador.",
"txt_no_two_step_passkeys": "No hay claves de acceso en dos pasos",
"txt_remove_last_passkey_hint": "Desactiva el inicio de sesión en dos pasos con clave de acceso para eliminar la última clave.",
"txt_passkey_setup_failed": "Error al configurar la clave de acceso",
"txt_passkey_created_at_value": "Creado el {value}",
"txt_account_passkey": "Clave de acceso de cuenta",
"txt_account_passkeys": "Claves de acceso de cuenta",
+17
View File
@@ -806,6 +806,23 @@ const ru: Record<string, string> = {
"txt_password_hint_too_long": "Подсказка к паролю должна содержать не более 120 символов.",
"txt_passkey": "Ключ доступа",
"txt_passkeys": "Ключи доступа",
"txt_register": "Зарегистрировать",
"txt_key_list": "Список ключей",
"txt_select_another_verification_method": "Выбрать другой способ проверки",
"txt_select_two_step_login_method": "Выберите способ двухэтапного входа",
"txt_two_step_passkeys": "Двухэтапный вход с ключом доступа",
"txt_two_step_passkeys_help": "Управление ключами доступа, которые используются только для двухэтапного входа.",
"txt_two_step_passkey_name_placeholder": "Ключ безопасности",
"txt_add_two_step_passkey": "Добавить ключ доступа",
"txt_two_step_passkey_added": "Двухэтапный вход с ключом доступа обновлен",
"txt_two_step_passkey_removed": "Ключ доступа удален",
"txt_two_step_passkeys_disabled": "Двухэтапный вход с ключом доступа отключен",
"txt_disable_passkey_two_step_failed": "Не удалось отключить двухэтапный вход с ключом доступа",
"txt_use_passkey_to_complete_two_step_verification": "Используйте ключ доступа, чтобы завершить двухэтапную проверку.",
"txt_touch_your_passkey_when_prompted": "Продолжите и подтвердите запрос ключа доступа в браузере.",
"txt_no_two_step_passkeys": "Нет ключей доступа для двухэтапного входа",
"txt_remove_last_passkey_hint": "Отключите двухэтапный вход с ключом доступа, чтобы удалить последний ключ.",
"txt_passkey_setup_failed": "Не удалось настроить ключ доступа",
"txt_passkey_created_at_value": "Создано {value}",
"txt_account_passkey": "Ключ доступа аккаунта",
"txt_account_passkeys": "Ключи доступа аккаунта",
+17
View File
@@ -806,6 +806,23 @@ const zhCN: Record<string, string> = {
"txt_password_hint_too_long": "密码提示最多只能输入 120 个字符",
"txt_passkey": "通行密钥",
"txt_passkeys": "通行密钥",
"txt_register": "注册",
"txt_key_list": "密钥列表",
"txt_select_another_verification_method": "选择其他验证方式",
"txt_select_two_step_login_method": "选择验证方式",
"txt_two_step_passkeys": "通行密钥二步登录",
"txt_two_step_passkeys_help": "管理仅用于二步登录的通行密钥。",
"txt_two_step_passkey_name_placeholder": "安全密钥",
"txt_add_two_step_passkey": "添加通行密钥",
"txt_two_step_passkey_added": "通行密钥二步登录已更新",
"txt_two_step_passkey_removed": "通行密钥已移除",
"txt_two_step_passkeys_disabled": "通行密钥二步登录已禁用",
"txt_disable_passkey_two_step_failed": "禁用通行密钥二步登录失败",
"txt_use_passkey_to_complete_two_step_verification": "使用通行密钥完成二步验证。",
"txt_touch_your_passkey_when_prompted": "继续并在浏览器提示中批准通行密钥验证。",
"txt_no_two_step_passkeys": "暂无二步登录通行密钥",
"txt_remove_last_passkey_hint": "请禁用通行密钥二步登录来移除最后一把密钥。",
"txt_passkey_setup_failed": "通行密钥设置失败",
"txt_passkey_created_at_value": "创建于 {value}",
"txt_account_passkey": "账号通行密钥",
"txt_account_passkeys": "账号通行密钥",
+17
View File
@@ -806,6 +806,23 @@ const zhTW: Record<string, string> = {
"txt_password_hint_too_long": "密碼提示最多隻能輸入 120 個字符",
"txt_passkey": "通行密鑰",
"txt_passkeys": "通行密鑰",
"txt_register": "註冊",
"txt_key_list": "密鑰列表",
"txt_select_another_verification_method": "選擇其他驗證方式",
"txt_select_two_step_login_method": "選擇驗證方式",
"txt_two_step_passkeys": "通行密鑰兩步登入",
"txt_two_step_passkeys_help": "管理僅用於兩步登入的通行密鑰。",
"txt_two_step_passkey_name_placeholder": "安全密鑰",
"txt_add_two_step_passkey": "新增通行密鑰",
"txt_two_step_passkey_added": "通行密鑰兩步登入已更新",
"txt_two_step_passkey_removed": "通行密鑰已移除",
"txt_two_step_passkeys_disabled": "通行密鑰兩步登入已停用",
"txt_disable_passkey_two_step_failed": "停用通行密鑰兩步登入失敗",
"txt_use_passkey_to_complete_two_step_verification": "使用通行密鑰完成兩步驗證。",
"txt_touch_your_passkey_when_prompted": "繼續並在瀏覽器提示中批准通行密鑰驗證。",
"txt_no_two_step_passkeys": "暫無兩步登入通行密鑰",
"txt_remove_last_passkey_hint": "請停用通行密鑰兩步登入來移除最後一把密鑰。",
"txt_passkey_setup_failed": "通行密鑰設置失敗",
"txt_passkey_created_at_value": "創建於 {value}",
"txt_account_passkey": "賬號通行密鑰",
"txt_account_passkeys": "賬號通行密鑰",