mirror of
https://github.com/miniflux/v2.git
synced 2025-06-27 16:36:00 +00:00
feat(webauthn): show help message regarding username and non-discoverable credentials
The username is required for non-resident keys, but it's not necessary for discoverable credentials like Passkeys.
This commit is contained in:
parent
2bcc4b8399
commit
51030ef1a8
22 changed files with 52 additions and 8 deletions
|
@ -220,6 +220,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Zuletzt genutzt",
|
"page.settings.webauthn.last_seen_on": "Zuletzt genutzt",
|
||||||
"page.settings.webauthn.register": "Hauptschlüssel registrieren",
|
"page.settings.webauthn.register": "Hauptschlüssel registrieren",
|
||||||
"page.settings.webauthn.register.error": "Hauptschlüssel kann nicht registriert werden",
|
"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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Entfernen Sie %d Hauptschlüssel",
|
"Entfernen Sie %d Hauptschlüssel",
|
||||||
"%d Hauptschlüssel entfernen"
|
"%d Hauptschlüssel entfernen"
|
||||||
|
|
|
@ -220,6 +220,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Last Used",
|
"page.settings.webauthn.last_seen_on": "Last Used",
|
||||||
"page.settings.webauthn.register": "Εγγραφή κωδικού πρόσβασης",
|
"page.settings.webauthn.register": "Εγγραφή κωδικού πρόσβασης",
|
||||||
"page.settings.webauthn.register.error": "Δεν είναι δυνατή η εγγραφή του κωδικού πρόσβασης",
|
"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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Αφαιρέστε %d κωδικό πρόσβασης",
|
"Αφαιρέστε %d κωδικό πρόσβασης",
|
||||||
"Καταργήστε %d κωδικούς πρόσβασης"
|
"Καταργήστε %d κωδικούς πρόσβασης"
|
||||||
|
|
|
@ -229,6 +229,7 @@
|
||||||
"page.login.oidc_signin": "Sign in with %s",
|
"page.login.oidc_signin": "Sign in with %s",
|
||||||
"page.login.webauthn_login": "Login with passkey",
|
"page.login.webauthn_login": "Login with passkey",
|
||||||
"page.login.webauthn_login.error": "Unable to 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.integrations.title": "Integrations",
|
||||||
"page.integration.miniflux_api": "Miniflux API",
|
"page.integration.miniflux_api": "Miniflux API",
|
||||||
"page.integration.miniflux_api_endpoint": "API Endpoint",
|
"page.integration.miniflux_api_endpoint": "API Endpoint",
|
||||||
|
|
|
@ -220,6 +220,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Usado por última vez",
|
"page.settings.webauthn.last_seen_on": "Usado por última vez",
|
||||||
"page.settings.webauthn.register": "Registrar clave de acceso",
|
"page.settings.webauthn.register": "Registrar clave de acceso",
|
||||||
"page.settings.webauthn.register.error": "No se puede registrar la 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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Eliminar %d clave de acceso",
|
"Eliminar %d clave de acceso",
|
||||||
"Eliminar %d claves de acceso"
|
"Eliminar %d claves de acceso"
|
||||||
|
|
|
@ -220,6 +220,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Last Used",
|
"page.settings.webauthn.last_seen_on": "Last Used",
|
||||||
"page.settings.webauthn.register": "Rekisteröi salasana",
|
"page.settings.webauthn.register": "Rekisteröi salasana",
|
||||||
"page.settings.webauthn.register.error": "Salasanaa ei voi rekisteröidä",
|
"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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Poista %d salasana",
|
"Poista %d salasana",
|
||||||
"Poista %d salasanaa"
|
"Poista %d salasanaa"
|
||||||
|
|
|
@ -220,6 +220,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Dernière utilisation",
|
"page.settings.webauthn.last_seen_on": "Dernière utilisation",
|
||||||
"page.settings.webauthn.register": "Enregister une nouvelle clé d’accès",
|
"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.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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Supprimer %d clé d’accès",
|
"Supprimer %d clé d’accès",
|
||||||
"Supprimer %d clés d’accès"
|
"Supprimer %d clés d’accès"
|
||||||
|
|
|
@ -220,6 +220,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Last Used",
|
"page.settings.webauthn.last_seen_on": "Last Used",
|
||||||
"page.settings.webauthn.register": "रजिस्टर पासकी",
|
"page.settings.webauthn.register": "रजिस्टर पासकी",
|
||||||
"page.settings.webauthn.register.error": "पासकी पंजीकृत करने में असमर्थ",
|
"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": [
|
"page.settings.webauthn.delete": [
|
||||||
"%d पासकुंजी निकालें",
|
"%d पासकुंजी निकालें",
|
||||||
"%d पासकी हटाएं"
|
"%d पासकी हटाएं"
|
||||||
|
|
|
@ -211,6 +211,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Last Used",
|
"page.settings.webauthn.last_seen_on": "Last Used",
|
||||||
"page.settings.webauthn.register": "Register passkey",
|
"page.settings.webauthn.register": "Register passkey",
|
||||||
"page.settings.webauthn.register.error": "Unable to 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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Remove %d passkey"
|
"Remove %d passkey"
|
||||||
],
|
],
|
||||||
|
|
|
@ -220,6 +220,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Last Used",
|
"page.settings.webauthn.last_seen_on": "Last Used",
|
||||||
"page.settings.webauthn.register": "Registra la chiave di accesso",
|
"page.settings.webauthn.register": "Registra la chiave di accesso",
|
||||||
"page.settings.webauthn.register.error": "Impossibile registrare la passkey",
|
"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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Rimuovi %d passkey",
|
"Rimuovi %d passkey",
|
||||||
"Rimuovi %d passkey"
|
"Rimuovi %d passkey"
|
||||||
|
|
|
@ -211,6 +211,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Last Used",
|
"page.settings.webauthn.last_seen_on": "Last Used",
|
||||||
"page.settings.webauthn.register": "パスキーを登録する",
|
"page.settings.webauthn.register": "パスキーを登録する",
|
||||||
"page.settings.webauthn.register.error": "パスキーを登録できません",
|
"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": [
|
"page.settings.webauthn.delete": [
|
||||||
"%d 個のパスキーを削除"
|
"%d 個のパスキーを削除"
|
||||||
],
|
],
|
||||||
|
|
|
@ -221,6 +221,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Laatst gebruikt",
|
"page.settings.webauthn.last_seen_on": "Laatst gebruikt",
|
||||||
"page.settings.webauthn.register": "Passkey registreren",
|
"page.settings.webauthn.register": "Passkey registreren",
|
||||||
"page.settings.webauthn.register.error": "Kan passkey niet 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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Verwijder %d passkey",
|
"Verwijder %d passkey",
|
||||||
"Verwijder %d passkeys"
|
"Verwijder %d passkeys"
|
||||||
|
|
|
@ -229,6 +229,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Ostatnio użyte",
|
"page.settings.webauthn.last_seen_on": "Ostatnio użyte",
|
||||||
"page.settings.webauthn.register": "Zarejestruj klucz dostępu",
|
"page.settings.webauthn.register": "Zarejestruj klucz dostępu",
|
||||||
"page.settings.webauthn.register.error": "Nie można zarejestrować klucza 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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Usuń %d klucz dostępu",
|
"Usuń %d klucz dostępu",
|
||||||
"Usuń %d klucze dostępu",
|
"Usuń %d klucze dostępu",
|
||||||
|
|
|
@ -220,6 +220,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Last Used",
|
"page.settings.webauthn.last_seen_on": "Last Used",
|
||||||
"page.settings.webauthn.register": "Registrar senha",
|
"page.settings.webauthn.register": "Registrar senha",
|
||||||
"page.settings.webauthn.register.error": "Não foi possível registrar a 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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Remover %d senha",
|
"Remover %d senha",
|
||||||
"Remover %d senhas"
|
"Remover %d senhas"
|
||||||
|
|
|
@ -229,6 +229,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Last Used",
|
"page.settings.webauthn.last_seen_on": "Last Used",
|
||||||
"page.settings.webauthn.register": "Зарегистрировать пароль",
|
"page.settings.webauthn.register": "Зарегистрировать пароль",
|
||||||
"page.settings.webauthn.register.error": "Не удается зарегистрировать пароль",
|
"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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Удалить %d пароль",
|
"Удалить %d пароль",
|
||||||
"Удалить %d пароля",
|
"Удалить %d пароля",
|
||||||
|
|
|
@ -466,6 +466,7 @@
|
||||||
"page.login.title": "Oturum aç",
|
"page.login.title": "Oturum aç",
|
||||||
"page.login.webauthn_login": "Passkey ile giriş yap",
|
"page.login.webauthn_login": "Passkey ile giriş yap",
|
||||||
"page.login.webauthn_login.error": "Passkey ile giriş yapılamıyor",
|
"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_api_key.title": "Yeni API Anahtarı",
|
||||||
"page.new_category.title": "Yeni Kategori",
|
"page.new_category.title": "Yeni Kategori",
|
||||||
"page.new_user.title": "Yeni Kullanıcı",
|
"page.new_user.title": "Yeni Kullanıcı",
|
||||||
|
|
|
@ -229,6 +229,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "Last Used",
|
"page.settings.webauthn.last_seen_on": "Last Used",
|
||||||
"page.settings.webauthn.register": "Зареєструвати пароль",
|
"page.settings.webauthn.register": "Зареєструвати пароль",
|
||||||
"page.settings.webauthn.register.error": "Не вдалося зареєструвати ключ доступу",
|
"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": [
|
"page.settings.webauthn.delete": [
|
||||||
"Видалити %d ключ доступу",
|
"Видалити %d ключ доступу",
|
||||||
"Видаліть %d ключа доступу",
|
"Видаліть %d ключа доступу",
|
||||||
|
|
|
@ -211,6 +211,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "最后使用时间",
|
"page.settings.webauthn.last_seen_on": "最后使用时间",
|
||||||
"page.settings.webauthn.register": "注册 Passkey",
|
"page.settings.webauthn.register": "注册 Passkey",
|
||||||
"page.settings.webauthn.register.error": "无法注册 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": [
|
"page.settings.webauthn.delete": [
|
||||||
"删除 %d 个 Passkey"
|
"删除 %d 个 Passkey"
|
||||||
],
|
],
|
||||||
|
|
|
@ -211,6 +211,7 @@
|
||||||
"page.settings.webauthn.last_seen_on": "最後使用時間",
|
"page.settings.webauthn.last_seen_on": "最後使用時間",
|
||||||
"page.settings.webauthn.register": "註冊 Passkey",
|
"page.settings.webauthn.register": "註冊 Passkey",
|
||||||
"page.settings.webauthn.register.error": "無法註冊 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": [
|
"page.settings.webauthn.delete": [
|
||||||
"刪除 %d 個 Passkey"
|
"刪除 %d 個 Passkey"
|
||||||
],
|
],
|
||||||
|
|
|
@ -24,15 +24,27 @@
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ if and (not disableLocalAuth) (.webAuthnEnabled) }}
|
||||||
|
<hr>
|
||||||
|
{{ end }}
|
||||||
{{ if .webAuthnEnabled }}
|
{{ if .webAuthnEnabled }}
|
||||||
<div class="webauthn">
|
<div class="webauthn">
|
||||||
<div role="alert" class="alert alert-error hidden" id="webauthn-error">
|
<template id="webauthn-error">
|
||||||
{{ t "page.login.webauthn_login.error" }}
|
<div role="alert" class="alert alert-error" id="webauthn-error-alert">
|
||||||
|
<h4>{{ t "page.login.webauthn_login.error" }}</h4>
|
||||||
|
<p id="webauthn-error-message"></p>
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<button class="button button-primary" id="webauthn-login" disabled>{{ t "page.login.webauthn_login" }}</button>
|
<button class="button button-primary" id="webauthn-login" disabled>{{ t "page.login.webauthn_login" }}</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-help">
|
||||||
|
<p>{{ t "page.login.webauthn_login.help" }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
{{ if and (.webAuthnEnabled) (or (hasOAuth2Provider "google") (hasOAuth2Provider "oidc")) }}
|
||||||
|
<hr>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ if hasOAuth2Provider "google" }}
|
{{ if hasOAuth2Provider "google" }}
|
||||||
<div class="oauth2">
|
<div class="oauth2">
|
||||||
|
|
|
@ -675,6 +675,10 @@ template {
|
||||||
max-width: 300px;
|
max-width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.webauthn {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
/* Counters */
|
/* Counters */
|
||||||
.unread-counter-wrapper,
|
.unread-counter-wrapper,
|
||||||
.error-feeds-counter-wrapper {
|
.error-feeds-counter-wrapper {
|
||||||
|
|
|
@ -5,10 +5,20 @@ class WebAuthnHandler {
|
||||||
|
|
||||||
static showErrorMessage(errorMessage) {
|
static showErrorMessage(errorMessage) {
|
||||||
console.log("webauthn error: " + errorMessage);
|
console.log("webauthn error: " + errorMessage);
|
||||||
const alertElement = document.getElementById("webauthn-error");
|
|
||||||
|
const alertElement = document.getElementById("webauthn-error-alert");
|
||||||
if (alertElement) {
|
if (alertElement) {
|
||||||
alertElement.textContent += " (" + errorMessage + ")";
|
alertElement.remove();
|
||||||
alertElement.classList.remove("hidden");
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.\" Manpage for miniflux.
|
.\" Manpage for miniflux.
|
||||||
.TH "MINIFLUX" "1" "August 18, 2024" "\ \&" "\ \&"
|
.TH "MINIFLUX" "1" "October 26, 2024" "\ \&" "\ \&"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
miniflux \- Minimalist and opinionated feed reader
|
miniflux \- Minimalist and opinionated feed reader
|
||||||
|
@ -546,7 +546,7 @@ Enabled by default\&.
|
||||||
.B WEBAUTHN
|
.B WEBAUTHN
|
||||||
Enable or disable WebAuthn/Passkey authentication\&.
|
Enable or disable WebAuthn/Passkey authentication\&.
|
||||||
.br
|
.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
|
.br
|
||||||
Default is disabled\&.
|
Default is disabled\&.
|
||||||
.TP
|
.TP
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue