feat: 添加 passkey 登录功能

This commit is contained in:
Baobhan Sith
2025-05-08 14:13:32 +08:00
parent 56dcbc33e0
commit bc4ae93d7d
20 changed files with 1347 additions and 159 deletions
+20 -5
View File
@@ -100,10 +100,14 @@
"twoFactorPrompt": "Enter your two-factor authentication code:",
"verifyButton": "Verify",
"rememberMe": "Remember Me",
"loginWithPasskey": "Login with Passkey",
"captchaPrompt": "Please complete the verification below:",
"error": {
"captchaLoadFailed": "Failed to load CAPTCHA. Please try refreshing.",
"captchaRequired": "Please complete the CAPTCHA verification."
"captchaRequired": "Please complete the CAPTCHA verification.",
"usernameRequiredForPasskey": "Username is required to use a passkey.",
"passkeyAuthOptionsFailed": "Failed to get passkey authentication options from the server.",
"passkeyAuthFailed": "Passkey authentication failed. Please try again or use your password."
},
"recaptchaV3Notice": "This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply."
},
@@ -527,19 +531,30 @@
}
},
"passkey": {
"title": "Passkey Settings",
"title": "Passkey Management",
"description": "Use Passkeys (biometrics or security keys) for passwordless authentication to enhance security and convenience.",
"nameLabel": "Passkey Name",
"namePlaceholder": "e.g., My Laptop",
"registerButton": "Register New Passkey",
"registerNewButton": "Register New Passkey",
"registeredKeysTitle": "Registered Passkeys",
"unnamedKey": "Unnamed Passkey",
"createdDate": "Created",
"lastUsedDate": "Last Used",
"noKeysRegistered": "No Passkeys registered yet.",
"confirmDelete": "Are you sure you want to delete this Passkey? This action cannot be undone.",
"error": {
"nameRequired": "Please enter a Passkey name.",
"cancelled": "Passkey registration was cancelled by the user.",
"genericRegistration": "Could not register Passkey: {message}",
"verificationFailed": "Registration failed: {message}"
"verificationFailed": "Registration failed: {message}",
"userNotLoggedIn": "User not logged in or username unavailable.",
"registrationCancelled": "Passkey registration was cancelled.",
"registrationFailed": "Passkey registration failed.",
"deleteFailedGeneral": "Failed to delete Passkey. Please try again."
},
"success": {
"registered": "Passkey registered successfully!"
"registered": "New Passkey registered successfully!",
"deleted": "Passkey deleted successfully."
}
},
"notifications": {
+26 -12
View File
@@ -458,11 +458,14 @@
"captchaPrompt": "以下の認証を完了してください:",
"error": {
"captchaLoadFailed": "CAPTCHA の読み込みに失敗しました。ページをリロードしてください。",
"captchaRequired": "CAPTCHA を完了してください。"
"captchaRequired": "CAPTCHA を完了してください。",
"usernameRequiredForPasskey": "Passkey を使用するにはユーザー名が必要です。",
"passkeyAuthOptionsFailed": "サーバーから Passkey 認証オプションを取得できませんでした。",
"passkeyAuthFailed": "Passkey 認証に失敗しました。もう一度試すか、パスワードを使用してください。"
},
"loggingIn": "ログイン中...",
"loginButton": "ログイン",
"passkeyLoginButton": "Passkeyでログイン",
"loginWithPasskey": "Passkeyでログイン",
"password": "パスワード",
"recaptchaV3Notice": "このサイトは reCAPTCHA によって保護されており、Google のプライバシーポリシーと利用規約が適用されます。",
"rememberMe": "ログイン状態を保持",
@@ -818,20 +821,31 @@
}
},
"passkey": {
"title": "Passkey 管理",
"description": "Passkey (生体認証またはセキュリティキー) を使用してパスワードなし認証を行い、アカウントのセキュリティとログインの利便性を向上させます。",
"error": {
"cancelled": "Passkey の登録がキャンセルされました。",
"genericRegistration": "Passkey を登録できません: {message}",
"nameRequired": "Passkey 名を入力してください。",
"verificationFailed": "登録に失敗しました: {message}"
},
"nameLabel": "Passkey 名",
"namePlaceholder": "例: マイノートパソコン",
"registerButton": "新しい Passkey を登録",
"success": {
"registered": "Passkey の登録に成功しました!"
"registerNewButton": "新しい Passkey を登録",
"registeredKeysTitle": "登録済みの Passkey",
"unnamedKey": "名前のない Passkey",
"createdDate": "作成日",
"lastUsedDate": "最終使用日",
"noKeysRegistered": "Passkey はまだ登録されていません。",
"confirmDelete": "この Passkey を削除しますか?この操作は元に戻せません。",
"error": {
"nameRequired": "Passkey 名を入力してください。",
"cancelled": "Passkey の登録がキャンセルされました。",
"genericRegistration": "Passkey を登録できません: {message}",
"verificationFailed": "登録に失敗しました: {message}",
"userNotLoggedIn": "ユーザーがログインしていないか、ユーザー名が利用できません。",
"registrationCancelled": "Passkey の登録がキャンセルされました。",
"registrationFailed": "Passkey の登録に失敗しました。",
"deleteFailedGeneral": "Passkey の削除に失敗しました。もう一度お試しください。"
},
"title": "Passkey 設定"
"success": {
"registered": "新しい Passkey が正常に登録されました!",
"deleted": "Passkey が正常に削除されました。"
}
},
"popupEditor": {
"enableLabel": "ファイルを開くときにポップアップエディターを表示する",
+21 -7
View File
@@ -100,12 +100,15 @@
"verifyButton": "验证",
"rememberMe": "记住我",
"captchaPrompt": "请完成下方的验证:",
"loginWithPasskey": "使用 Passkey 登录",
"error": {
"captchaLoadFailed": "加载 CAPTCHA 失败,请尝试刷新页面。",
"captchaRequired": "请完成 CAPTCHA 验证。"
"captchaRequired": "请完成 CAPTCHA 验证。",
"usernameRequiredForPasskey": "使用 Passkey 需要输入用户名。",
"passkeyAuthOptionsFailed": "从服务器获取 Passkey 认证选项失败。",
"passkeyAuthFailed": "Passkey 认证失败。请重试或使用密码登录。"
},
"recaptchaV3Notice": "此网站受 reCAPTCHA 保护,并适用 Google 隐私政策和服务条款。",
"passkeyLoginButton": "使用 Passkey 登录"
"recaptchaV3Notice": "此网站受 reCAPTCHA 保护,并适用 Google 隐私政策和服务条款。"
},
"connections": {
"addConnection": "添加新连接",
@@ -526,19 +529,30 @@
}
},
"passkey": {
"title": "Passkey 设置",
"title": "Passkey 管理",
"description": "使用 Passkey(生物识别或安全密钥)进行无密码认证,提升账户安全性和登录便捷性。",
"nameLabel": "Passkey 名称",
"namePlaceholder": "例如:我的笔记本电脑",
"registerButton": "注册新 Passkey",
"registerNewButton": "注册新 Passkey",
"registeredKeysTitle": "已注册的 Passkey",
"unnamedKey": "未命名 Passkey",
"createdDate": "创建于",
"lastUsedDate": "上次使用",
"noKeysRegistered": "尚未注册任何 Passkey。",
"confirmDelete": "确定要删除此 Passkey 吗?此操作无法撤销。",
"error": {
"nameRequired": "请输入 Passkey 名称。",
"cancelled": "Passkey 注册已被用户取消。",
"genericRegistration": "无法注册 Passkey: {message}",
"verificationFailed": "注册失败: {message}"
"verificationFailed": "注册失败: {message}",
"userNotLoggedIn": "用户未登录或用户名不可用。",
"registrationCancelled": "Passkey 注册已取消。",
"registrationFailed": "Passkey 注册失败。",
"deleteFailedGeneral": "删除 Passkey 失败。请重试。"
},
"success": {
"registered": "Passkey 注册成功!"
"registered": "新的 Passkey 已成功注册!",
"deleted": "Passkey 已成功删除。"
}
},
"notifications": {