diff --git a/internal/locale/translations/de_DE.json b/internal/locale/translations/de_DE.json index bc01c519..92763630 100644 --- a/internal/locale/translations/de_DE.json +++ b/internal/locale/translations/de_DE.json @@ -220,6 +220,7 @@ "page.settings.webauthn.last_seen_on": "Zuletzt genutzt", "page.settings.webauthn.register": "Hauptschlüssel registrieren", "page.settings.webauthn.register.error": "Hauptschlüssel kann nicht registriert werden", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Entfernen Sie %d Hauptschlüssel", "%d Hauptschlüssel entfernen" diff --git a/internal/locale/translations/el_EL.json b/internal/locale/translations/el_EL.json index 6c97936c..59158fd1 100644 --- a/internal/locale/translations/el_EL.json +++ b/internal/locale/translations/el_EL.json @@ -220,6 +220,7 @@ "page.settings.webauthn.last_seen_on": "Last Used", "page.settings.webauthn.register": "Εγγραφή κωδικού πρόσβασης", "page.settings.webauthn.register.error": "Δεν είναι δυνατή η εγγραφή του κωδικού πρόσβασης", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Αφαιρέστε %d κωδικό πρόσβασης", "Καταργήστε %d κωδικούς πρόσβασης" diff --git a/internal/locale/translations/en_US.json b/internal/locale/translations/en_US.json index 937678da..b9bc8be9 100644 --- a/internal/locale/translations/en_US.json +++ b/internal/locale/translations/en_US.json @@ -229,6 +229,7 @@ "page.login.oidc_signin": "Sign in with %s", "page.login.webauthn_login": "Login with passkey", "page.login.webauthn_login.error": "Unable to login with passkey", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.integrations.title": "Integrations", "page.integration.miniflux_api": "Miniflux API", "page.integration.miniflux_api_endpoint": "API Endpoint", diff --git a/internal/locale/translations/es_ES.json b/internal/locale/translations/es_ES.json index 62ab959b..f3d02bef 100644 --- a/internal/locale/translations/es_ES.json +++ b/internal/locale/translations/es_ES.json @@ -220,6 +220,7 @@ "page.settings.webauthn.last_seen_on": "Usado por última vez", "page.settings.webauthn.register": "Registrar clave de acceso", "page.settings.webauthn.register.error": "No se puede registrar la clave de acceso", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Eliminar %d clave de acceso", "Eliminar %d claves de acceso" diff --git a/internal/locale/translations/fi_FI.json b/internal/locale/translations/fi_FI.json index 04dde43e..0022f84f 100644 --- a/internal/locale/translations/fi_FI.json +++ b/internal/locale/translations/fi_FI.json @@ -220,6 +220,7 @@ "page.settings.webauthn.last_seen_on": "Last Used", "page.settings.webauthn.register": "Rekisteröi salasana", "page.settings.webauthn.register.error": "Salasanaa ei voi rekisteröidä", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Poista %d salasana", "Poista %d salasanaa" diff --git a/internal/locale/translations/fr_FR.json b/internal/locale/translations/fr_FR.json index cee8fa6d..54c02aaa 100644 --- a/internal/locale/translations/fr_FR.json +++ b/internal/locale/translations/fr_FR.json @@ -220,6 +220,7 @@ "page.settings.webauthn.last_seen_on": "Dernière utilisation", "page.settings.webauthn.register": "Enregister une nouvelle clé d’accès", "page.settings.webauthn.register.error": "Impossible d'enregistrer la clé d’accès", + "page.login.webauthn_login.help": "Veuillez saisir votre nom d'utilisateur si vous utilisez une clé de sécurité. Cela n'est pas nécessaire si vous utilisez une clé d'accès (Passkey).", "page.settings.webauthn.delete": [ "Supprimer %d clé d’accès", "Supprimer %d clés d’accès" diff --git a/internal/locale/translations/hi_IN.json b/internal/locale/translations/hi_IN.json index aa1669e3..ca6a163e 100644 --- a/internal/locale/translations/hi_IN.json +++ b/internal/locale/translations/hi_IN.json @@ -220,6 +220,7 @@ "page.settings.webauthn.last_seen_on": "Last Used", "page.settings.webauthn.register": "रजिस्टर पासकी", "page.settings.webauthn.register.error": "पासकी पंजीकृत करने में असमर्थ", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "%d पासकुंजी निकालें", "%d पासकी हटाएं" diff --git a/internal/locale/translations/id_ID.json b/internal/locale/translations/id_ID.json index e61e31e7..8250adb3 100644 --- a/internal/locale/translations/id_ID.json +++ b/internal/locale/translations/id_ID.json @@ -211,6 +211,7 @@ "page.settings.webauthn.last_seen_on": "Last Used", "page.settings.webauthn.register": "Register passkey", "page.settings.webauthn.register.error": "Unable to register passkey", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Remove %d passkey" ], diff --git a/internal/locale/translations/it_IT.json b/internal/locale/translations/it_IT.json index 7a499743..f5ac1817 100644 --- a/internal/locale/translations/it_IT.json +++ b/internal/locale/translations/it_IT.json @@ -220,6 +220,7 @@ "page.settings.webauthn.last_seen_on": "Last Used", "page.settings.webauthn.register": "Registra la chiave di accesso", "page.settings.webauthn.register.error": "Impossibile registrare la passkey", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Rimuovi %d passkey", "Rimuovi %d passkey" diff --git a/internal/locale/translations/ja_JP.json b/internal/locale/translations/ja_JP.json index 2a3b6a6e..b835cd07 100644 --- a/internal/locale/translations/ja_JP.json +++ b/internal/locale/translations/ja_JP.json @@ -211,6 +211,7 @@ "page.settings.webauthn.last_seen_on": "Last Used", "page.settings.webauthn.register": "パスキーを登録する", "page.settings.webauthn.register.error": "パスキーを登録できません", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "%d 個のパスキーを削除" ], diff --git a/internal/locale/translations/nl_NL.json b/internal/locale/translations/nl_NL.json index 72ace2a5..0ce2b6da 100644 --- a/internal/locale/translations/nl_NL.json +++ b/internal/locale/translations/nl_NL.json @@ -221,6 +221,7 @@ "page.settings.webauthn.last_seen_on": "Laatst gebruikt", "page.settings.webauthn.register": "Passkey registreren", "page.settings.webauthn.register.error": "Kan passkey niet registreren", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Verwijder %d passkey", "Verwijder %d passkeys" diff --git a/internal/locale/translations/pl_PL.json b/internal/locale/translations/pl_PL.json index b938ad40..2c2f1756 100644 --- a/internal/locale/translations/pl_PL.json +++ b/internal/locale/translations/pl_PL.json @@ -229,6 +229,7 @@ "page.settings.webauthn.last_seen_on": "Ostatnio użyte", "page.settings.webauthn.register": "Zarejestruj klucz dostępu", "page.settings.webauthn.register.error": "Nie można zarejestrować klucza dostępu", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Usuń %d klucz dostępu", "Usuń %d klucze dostępu", diff --git a/internal/locale/translations/pt_BR.json b/internal/locale/translations/pt_BR.json index c2461f5d..31e2e022 100644 --- a/internal/locale/translations/pt_BR.json +++ b/internal/locale/translations/pt_BR.json @@ -220,6 +220,7 @@ "page.settings.webauthn.last_seen_on": "Last Used", "page.settings.webauthn.register": "Registrar senha", "page.settings.webauthn.register.error": "Não foi possível registrar a senha", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Remover %d senha", "Remover %d senhas" diff --git a/internal/locale/translations/ru_RU.json b/internal/locale/translations/ru_RU.json index df031ccd..6344ade6 100644 --- a/internal/locale/translations/ru_RU.json +++ b/internal/locale/translations/ru_RU.json @@ -229,6 +229,7 @@ "page.settings.webauthn.last_seen_on": "Last Used", "page.settings.webauthn.register": "Зарегистрировать пароль", "page.settings.webauthn.register.error": "Не удается зарегистрировать пароль", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Удалить %d пароль", "Удалить %d пароля", diff --git a/internal/locale/translations/tr_TR.json b/internal/locale/translations/tr_TR.json index 7ae251b5..8e7efa8a 100644 --- a/internal/locale/translations/tr_TR.json +++ b/internal/locale/translations/tr_TR.json @@ -466,6 +466,7 @@ "page.login.title": "Oturum aç", "page.login.webauthn_login": "Passkey ile giriş yap", "page.login.webauthn_login.error": "Passkey ile giriş yapılamıyor", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.new_api_key.title": "Yeni API Anahtarı", "page.new_category.title": "Yeni Kategori", "page.new_user.title": "Yeni Kullanıcı", diff --git a/internal/locale/translations/uk_UA.json b/internal/locale/translations/uk_UA.json index 214d6bd8..f211dddc 100644 --- a/internal/locale/translations/uk_UA.json +++ b/internal/locale/translations/uk_UA.json @@ -229,6 +229,7 @@ "page.settings.webauthn.last_seen_on": "Last Used", "page.settings.webauthn.register": "Зареєструвати пароль", "page.settings.webauthn.register.error": "Не вдалося зареєструвати ключ доступу", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "Видалити %d ключ доступу", "Видаліть %d ключа доступу", diff --git a/internal/locale/translations/zh_CN.json b/internal/locale/translations/zh_CN.json index 38adcf31..2ab86175 100644 --- a/internal/locale/translations/zh_CN.json +++ b/internal/locale/translations/zh_CN.json @@ -211,6 +211,7 @@ "page.settings.webauthn.last_seen_on": "最后使用时间", "page.settings.webauthn.register": "注册 Passkey", "page.settings.webauthn.register.error": "无法注册 Passkey", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "删除 %d 个 Passkey" ], diff --git a/internal/locale/translations/zh_TW.json b/internal/locale/translations/zh_TW.json index c70ea1c8..4026ac6a 100644 --- a/internal/locale/translations/zh_TW.json +++ b/internal/locale/translations/zh_TW.json @@ -211,6 +211,7 @@ "page.settings.webauthn.last_seen_on": "最後使用時間", "page.settings.webauthn.register": "註冊 Passkey", "page.settings.webauthn.register.error": "無法註冊 Passkey", + "page.login.webauthn_login.help": "Please enter your username if you're using a security key. This is not required if you are using a Passkey (discoverable credentials).", "page.settings.webauthn.delete": [ "刪除 %d 個 Passkey" ], diff --git a/internal/template/templates/views/login.html b/internal/template/templates/views/login.html index ff642231..5462d4be 100644 --- a/internal/template/templates/views/login.html +++ b/internal/template/templates/views/login.html @@ -24,16 +24,28 @@ {{ end }} + {{ if and (not disableLocalAuth) (.webAuthnEnabled) }} +
+ {{ end }} {{ if .webAuthnEnabled }}
- +
+
+

{{ t "page.login.webauthn_login.help" }}

+
{{ end }} + {{ if and (.webAuthnEnabled) (or (hasOAuth2Provider "google") (hasOAuth2Provider "oidc")) }} +
+ {{ end }} {{ if hasOAuth2Provider "google" }}
{{ t "page.login.google_signin" }} diff --git a/internal/ui/static/css/common.css b/internal/ui/static/css/common.css index 2bd3a535..498b7068 100644 --- a/internal/ui/static/css/common.css +++ b/internal/ui/static/css/common.css @@ -675,6 +675,10 @@ template { max-width: 300px; } +.webauthn { + margin-bottom: 20px; +} + /* Counters */ .unread-counter-wrapper, .error-feeds-counter-wrapper { diff --git a/internal/ui/static/js/webauthn_handler.js b/internal/ui/static/js/webauthn_handler.js index 32752d54..60a6a25c 100644 --- a/internal/ui/static/js/webauthn_handler.js +++ b/internal/ui/static/js/webauthn_handler.js @@ -5,10 +5,20 @@ class WebAuthnHandler { static showErrorMessage(errorMessage) { console.log("webauthn error: " + errorMessage); - const alertElement = document.getElementById("webauthn-error"); + + const alertElement = document.getElementById("webauthn-error-alert"); if (alertElement) { - alertElement.textContent += " (" + errorMessage + ")"; - alertElement.classList.remove("hidden"); + alertElement.remove(); + } + + const alertTemplateElement = document.getElementById("webauthn-error"); + if (alertTemplateElement) { + const clonedElement = alertTemplateElement.content.cloneNode(true); + const errorMessageElement = clonedElement.getElementById("webauthn-error-message"); + if (errorMessageElement) { + errorMessageElement.textContent = errorMessage; + } + alertTemplateElement.parentNode.insertBefore(clonedElement, alertTemplateElement); } } diff --git a/miniflux.1 b/miniflux.1 index 8b68515e..7c785d3c 100644 --- a/miniflux.1 +++ b/miniflux.1 @@ -1,5 +1,5 @@ .\" Manpage for miniflux. -.TH "MINIFLUX" "1" "August 18, 2024" "\ \&" "\ \&" +.TH "MINIFLUX" "1" "October 26, 2024" "\ \&" "\ \&" .SH NAME miniflux \- Minimalist and opinionated feed reader @@ -546,7 +546,7 @@ Enabled by default\&. .B WEBAUTHN Enable or disable WebAuthn/Passkey authentication\&. .br -Note: After activating and setting up your Passkey, just enter your username and click the Passkey login button\&. +You must provide a username on the login page if your are using non-residential keys. However, this is not required for discoverable credentials\&. .br Default is disabled\&. .TP