mirror of
https://github.com/logto-io/logto.git
synced 2025-02-17 22:04:19 -05:00
refactor(console): add webauthn tips and update phrases (#4709)
This commit is contained in:
parent
62367da5fc
commit
6b01e9c88e
20 changed files with 181 additions and 32 deletions
|
@ -9,3 +9,7 @@
|
|||
color: var(--color-text-secondary);
|
||||
margin-right: _.unit(3);
|
||||
}
|
||||
|
||||
.factorTip {
|
||||
margin-left: _.unit(1);
|
||||
}
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
import { MfaFactor } from '@logto/schemas';
|
||||
import { type ReactNode } from 'react';
|
||||
|
||||
import FactorBackupCode from '@/assets/icons/factor-backup-code.svg';
|
||||
import FactorTotp from '@/assets/icons/factor-totp.svg';
|
||||
import FactorWebAuthn from '@/assets/icons/factor-webauthn.svg';
|
||||
import Tip from '@/assets/icons/tip.svg';
|
||||
import IconButton from '@/ds-components/IconButton';
|
||||
import { ToggleTip } from '@/ds-components/Tip';
|
||||
|
||||
import MfaFactorName, { type Props as MfaFactorNameProps } from '../MfaFactorName';
|
||||
|
||||
|
@ -14,13 +18,24 @@ const factorIcon: Record<MfaFactor, SvgComponent> = {
|
|||
[MfaFactor.BackupCode]: FactorBackupCode,
|
||||
};
|
||||
|
||||
function MfaFactorTitle({ type }: MfaFactorNameProps) {
|
||||
type Props = MfaFactorNameProps & {
|
||||
tooltip?: ReactNode;
|
||||
};
|
||||
|
||||
function MfaFactorTitle({ type, tooltip }: Props) {
|
||||
const Icon = factorIcon[type];
|
||||
|
||||
return (
|
||||
<div className={styles.factorTitle}>
|
||||
<Icon className={styles.factorIcon} />
|
||||
<MfaFactorName type={type} />
|
||||
{tooltip && (
|
||||
<ToggleTip anchorClassName={styles.factorTip} content={tooltip}>
|
||||
<IconButton size="small">
|
||||
<Tip />
|
||||
</IconButton>
|
||||
</ToggleTip>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
@use '@/scss/underscore' as _;
|
||||
|
||||
.webauthnTipContent {
|
||||
padding-inline-start: _.unit(4);
|
||||
margin: 0;
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
import DynamicT from '@/ds-components/DynamicT';
|
||||
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
function WebAuthnTipContent() {
|
||||
return (
|
||||
<ul className={styles.webauthnTipContent}>
|
||||
<li>
|
||||
<DynamicT forKey="mfa.webauthn_native_tip" />
|
||||
</li>
|
||||
<li>
|
||||
<DynamicT forKey="mfa.webauthn_domain_tip" />
|
||||
</li>
|
||||
</ul>
|
||||
);
|
||||
}
|
||||
|
||||
export default WebAuthnTipContent;
|
|
@ -4,6 +4,7 @@ import { MfaFactor } from '@logto/schemas';
|
|||
import MfaFactorTitle from '@/components/MfaFactorTitle';
|
||||
import DynamicT from '@/ds-components/DynamicT';
|
||||
|
||||
import WebAuthnTipContent from './WebAuthnTipContent';
|
||||
import * as styles from './index.module.scss';
|
||||
|
||||
type Props = {
|
||||
|
@ -19,7 +20,7 @@ const factorDescriptionLabel: Record<MfaFactor, AdminConsoleKey> = {
|
|||
function FactorLabel({ type }: Props) {
|
||||
return (
|
||||
<div className={styles.factorLabel}>
|
||||
<MfaFactorTitle type={type} />
|
||||
<MfaFactorTitle type={type} tooltip={type === MfaFactor.WebAuthn && <WebAuthnTipContent />} />
|
||||
<div className={styles.factorDescription}>
|
||||
<DynamicT forKey={factorDescriptionLabel[type]} />
|
||||
</div>
|
||||
|
|
|
@ -8,9 +8,16 @@ const mfa = {
|
|||
'Benutzer müssen einen der aktivierten Faktoren zur zweistufigen Authentifizierung überprüfen.',
|
||||
totp: 'Authenticator-App OTP',
|
||||
otp_description: 'Verknüpfen Sie Google Authenticator usw., um Einmalpasswörter zu überprüfen.',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'WebAuthn verwendet den Passkey, um das Gerät des Benutzers zu überprüfen, einschließlich YubiKey.',
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'Backup-Code',
|
||||
backup_code_description:
|
||||
'Generieren Sie 10 eindeutige Codes, von denen jeder für eine einzige Authentifizierung verwendet werden kann.',
|
||||
|
|
|
@ -8,8 +8,12 @@ const mfa = {
|
|||
'Users need to verify one of the enabled factors for 2-step authentication.',
|
||||
totp: 'Authenticator app OTP',
|
||||
otp_description: 'Link Google Authenticator, etc., to verify one-time passwords.',
|
||||
webauthn: 'WebAuthn',
|
||||
webauthn_description: 'WebAuthn uses the passkey to verify the user’s device including YubiKey.',
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
webauthn_description:
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'Backup code',
|
||||
backup_code_description: 'Generate 10 unique codes, each usable for a single authentication.',
|
||||
backup_code_setup_hint: 'The backup authentication factor which can not be enabled alone:',
|
||||
|
|
|
@ -8,9 +8,16 @@ const mfa = {
|
|||
'Los usuarios deben verificar uno de los factores habilitados para la autenticación de dos pasos.',
|
||||
totp: 'OTP de la aplicación autenticadora',
|
||||
otp_description: 'Vincula Google Authenticator, etc., para verificar contraseñas de un solo uso.',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'WebAuthn utiliza la clave de paso para verificar el dispositivo del usuario, incluido YubiKey.',
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'Código de respaldo',
|
||||
backup_code_description:
|
||||
'Genera 10 códigos únicos, cada uno utilizable para una sola autenticación.',
|
||||
|
|
|
@ -9,9 +9,16 @@ const mfa = {
|
|||
totp: "OTP de l'application Authenticator",
|
||||
otp_description:
|
||||
'Liez Google Authenticator, etc., pour vérifier les mots de passe à usage unique.',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
"WebAuthn utilise la clé de passe pour vérifier le périphérique de l'utilisateur, y compris YubiKey.",
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'Code de secours',
|
||||
backup_code_description:
|
||||
'Générez 10 codes uniques, chacun utilisable pour une seule authentification.',
|
||||
|
|
|
@ -8,9 +8,16 @@ const mfa = {
|
|||
"Gli utenti devono verificare uno dei fattori abilitati per l'autenticazione a due passaggi.",
|
||||
totp: "OTP dell'app Authenticator",
|
||||
otp_description: 'Collega Google Authenticator, ecc., per verificare le password monouso.',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
"WebAuthn utilizza la chiave di passaggio per verificare il dispositivo dell'utente, inclusa YubiKey.",
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'Codice di backup',
|
||||
backup_code_description:
|
||||
'Genera 10 codici unici, ciascuno utilizzabile per una singola autenticazione.',
|
||||
|
|
|
@ -8,9 +8,16 @@ const mfa = {
|
|||
'ユーザーは2段階認証のために有効になっている要因の1つを確認する必要があります。',
|
||||
totp: 'AuthenticatorアプリOTP',
|
||||
otp_description: 'Google Authenticatorなどをリンクしてワンタイムパスワードを確認します。',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'WebAuthnはYubiKeyを含むユーザーのデバイスを確認するためにパスキーを使用します。',
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'バックアップコード',
|
||||
backup_code_description: '1回の認証に使用できる10個のユニークなコードを生成します。',
|
||||
backup_code_setup_hint: '単独で有効化できないバックアップ認証要因:',
|
||||
|
|
|
@ -7,9 +7,16 @@ const mfa = {
|
|||
'사용자는 두 단계 인증을 위해 활성화된 요소 중 하나를 확인해야 합니다.',
|
||||
totp: 'Authenticator 앱 OTP',
|
||||
otp_description: 'Google Authenticator 등을 연결하여 일회용 암호를 확인합니다.',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'WebAuthn은 YubiKey를 포함한 사용자 장치를 확인하기 위해 패스키를 사용합니다.',
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: '백업 코드',
|
||||
backup_code_description: '한 번의 인증에 사용할 수 있는 고유한 10개의 코드를 생성합니다.',
|
||||
backup_code_setup_hint: '독립적으로 활성화할 수 없는 백업 인증 요소:',
|
||||
|
|
|
@ -8,9 +8,16 @@ const mfa = {
|
|||
'Użytkownicy muszą zweryfikować jeden z włączonych czynników podczas autoryzacji dwuetapowej.',
|
||||
totp: 'OTP z aplikacji Authenticator',
|
||||
otp_description: 'Połącz Google Authenticator itp., aby zweryfikować jednorazowe hasła.',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'WebAuthn używa klucza przechodzenia do weryfikacji urządzenia użytkownika, w tym YubiKey.',
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'Kod zapasowy',
|
||||
backup_code_description:
|
||||
'Generuj 10 unikalnych kodów, z których każdy można użyć do jednej autoryzacji.',
|
||||
|
|
|
@ -8,9 +8,16 @@ const mfa = {
|
|||
'Os usuários precisam verificar um dos fatores habilitados para autenticação de dois passos.',
|
||||
totp: 'OTP do aplicativo Authenticator',
|
||||
otp_description: 'Vincule o Google Authenticator, etc., para verificar senhas de uso único.',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'O WebAuthn usa a chave de passagem para verificar o dispositivo do usuário, incluindo o YubiKey.',
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'Código de backup',
|
||||
backup_code_description:
|
||||
'Gere 10 códigos exclusivos, cada um utilizável para uma única autenticação.',
|
||||
|
|
|
@ -8,9 +8,16 @@ const mfa = {
|
|||
'Os usuários precisam verificar um dos fatores habilitados para autenticação de dois passos.',
|
||||
totp: 'OTP do aplicativo Authenticator',
|
||||
otp_description: 'Vincule o Google Authenticator, etc., para verificar senhas de uso único.',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'O WebAuthn usa a chave de passagem para verificar o dispositivo do usuário, incluindo o YubiKey.',
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'Código de backup',
|
||||
backup_code_description:
|
||||
'Gere 10 códigos exclusivos, cada um utilizável para uma única autenticação.',
|
||||
|
|
|
@ -8,9 +8,16 @@ const mfa = {
|
|||
'Пользователи должны проверить один из включенных факторов для двухэтапной аутентификации.',
|
||||
totp: 'OTP из приложения Authenticator',
|
||||
otp_description: 'Свяжите Google Authenticator и т. д., чтобы проверить одноразовые пароли.',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'WebAuthn использует ключ прохода для проверки устройства пользователя, включая YubiKey.',
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'Резервный код',
|
||||
backup_code_description:
|
||||
'Генерируйте 10 уникальных кодов, каждый из которых можно использовать для одной аутентификации.',
|
||||
|
|
|
@ -9,9 +9,16 @@ const mfa = {
|
|||
totp: 'Authenticator uygulama OTP',
|
||||
otp_description:
|
||||
'Google Authenticator vb. bağlayarak tek kullanımlık şifreleri doğrulamak için kullanın.',
|
||||
webauthn: 'WebAuthn',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'WebAuthn, YubiKey dahil olmak üzere kullanıcının cihazını doğrulamak için geçiş anahtarını kullanır.',
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: 'Yedek kod',
|
||||
backup_code_description:
|
||||
'Tek kullanımlık bir kimlik doğrulama için kullanılabilen 10 benzersiz kod üretin.',
|
||||
|
|
|
@ -6,8 +6,16 @@ const mfa = {
|
|||
multi_factors_description: '用户需要验证启用的一个因素以进行两步验证。',
|
||||
totp: 'Authenticator应用程序OTP',
|
||||
otp_description: '链接Google Authenticator等来验证一次性密码。',
|
||||
webauthn: 'WebAuthn',
|
||||
webauthn_description: 'WebAuthn使用通行密钥验证用户设备,包括YubiKey。',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: '备用代码',
|
||||
backup_code_description: '生成10个唯一的代码,每个代码可用于一次验证。',
|
||||
backup_code_setup_hint: '不能单独启用的备用身份验证因素:',
|
||||
|
|
|
@ -6,8 +6,16 @@ const mfa = {
|
|||
multi_factors_description: '用戶需要驗證啟用的一個因素以進行兩步驗證。',
|
||||
totp: 'Authenticator應用程式OTP',
|
||||
otp_description: '連接Google Authenticator等來驗證一次性密碼。',
|
||||
webauthn: 'WebAuthn',
|
||||
webauthn_description: 'WebAuthn使用通行密鑰驗證用戶設備,包括YubiKey。',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: '備用代碼',
|
||||
backup_code_description: '生成10個唯一的代碼,每個代碼可用於一次驗證。',
|
||||
backup_code_setup_hint: '不能單獨啟用的備用身份驗證因素:',
|
||||
|
|
|
@ -6,8 +6,16 @@ const mfa = {
|
|||
multi_factors_description: '用戶需要驗證啟用的一個因素以進行兩步驗證。',
|
||||
totp: 'Authenticator應用程式OTP',
|
||||
otp_description: '連接Google Authenticator等來驗證一次性密碼。',
|
||||
webauthn: 'WebAuthn',
|
||||
webauthn_description: 'WebAuthn使用通行密鑰驗證用戶設備,包括YubiKey。',
|
||||
/** UNTRANSLATED */
|
||||
webauthn: 'WebAuthn(Passkey)',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_description:
|
||||
'Verify via browser-supported method: biometrics, phone scanning, or security key, etc.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_native_tip: 'WebAuthn is not supported for Native applications.',
|
||||
/** UNTRANSLATED */
|
||||
webauthn_domain_tip:
|
||||
'WebAuthn binds public keys to the specific domain. Modifying your service domain will block users from authenticating via existing passkeys.',
|
||||
backup_code: '備用代碼',
|
||||
backup_code_description: '生成10個唯一的代碼,每個代碼可用於一次驗證。',
|
||||
backup_code_setup_hint: '不能單獨啟用的備用身份驗證因素:',
|
||||
|
|
Loading…
Add table
Reference in a new issue