mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-10-21 22:46:32 +00:00
feat(login): an OIDC-only instance shows the way to the IdP, not a form
On a slow line an OIDC-only login page drew the email and password form while it asked the server which sign-in it offers, then the SSO button once it knew, and only then left for the identity provider. Both looked like something to fill in or click. Until the config answers, the page now shows a short wait instead of the form, and on an OIDC-only instance it becomes a screen that only says where it is going, "Taking you to Keycloak…", with nothing to fill in. A repeat visit announces that redirect at once from the cached config. Should the redirect not have left the page after eight seconds, a quiet link continues by hand. The redirect still never runs on a cached config, right after a sign-out or after a failed sign-in at the provider. That last case now loads the config as well, so an OIDC-only instance shows its own screen with the error rather than a password form nobody can use.
This commit is contained in:
@@ -27,6 +27,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'تسجيل الدخول عبر {name}',
|
||||
'login.oidcOnly': 'تم تعطيل المصادقة بكلمة المرور. يرجى تسجيل الدخول عبر مزود SSO.',
|
||||
'login.oidcLoggedOut': 'تم تسجيل خروجك. سجّل الدخول مجدداً عبر مزود SSO.',
|
||||
'login.oidcRedirecting': 'جارٍ تحويلك إلى {name}…',
|
||||
'login.oidcRedirectSlow': 'ما زلت هنا؟ تابع إلى {name}',
|
||||
'login.demoHint': 'جرّب العرض التجريبي دون الحاجة للتسجيل',
|
||||
'login.mfaTitle': 'المصادقة الثنائية',
|
||||
'login.mfaSubtitle': 'أدخل الرمز المكون من 6 أرقام من تطبيق المصادقة.',
|
||||
|
||||
@@ -28,6 +28,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Entrar com {name}',
|
||||
'login.oidcOnly': 'Login por senha desativado. Use o provedor SSO.',
|
||||
'login.oidcLoggedOut': 'Você foi desconectado. Entre novamente usando o provedor SSO.',
|
||||
'login.oidcRedirecting': 'Redirecionando para {name}…',
|
||||
'login.oidcRedirectSlow': 'Ainda aqui? Continuar para {name}',
|
||||
'login.demoHint': 'Experimente a demonstração — sem cadastro',
|
||||
'login.mfaTitle': 'Autenticação em duas etapas',
|
||||
'login.mfaSubtitle': 'Digite o código de 6 dígitos do seu app autenticador.',
|
||||
|
||||
@@ -67,6 +67,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcOnly':
|
||||
"L'autenticació per contrasenya està desactivada. Si us plau, inicia la sessió amb el teu proveïdor SSO.",
|
||||
'login.oidcLoggedOut': 'Has tancat la sessió. Torna a iniciar-la amb el teu proveïdor SSO.',
|
||||
'login.oidcRedirecting': 'Redirigint a {name}…',
|
||||
'login.oidcRedirectSlow': 'Encara aquí? Continua a {name}',
|
||||
'login.passkey.signIn': 'Inicia la sessió amb una passkey',
|
||||
'login.passkey.failed': 'Error en iniciar la sessió amb la passkey. Torna-ho a provar.',
|
||||
|
||||
|
||||
@@ -28,6 +28,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Přihlásit se přes {name}',
|
||||
'login.oidcOnly': 'Ověřování heslem je zakázáno. Přihlaste se prosím přes SSO poskytovatele.',
|
||||
'login.oidcLoggedOut': 'Byl jste odhlášen. Přihlaste se znovu přes SSO poskytovatele.',
|
||||
'login.oidcRedirecting': 'Přesměrování na {name}…',
|
||||
'login.oidcRedirectSlow': 'Pořád tady? Pokračovat na {name}',
|
||||
'login.demoHint': 'Vyzkoušejte demo – registrace není nutná',
|
||||
'login.mfaTitle': 'Dvoufaktorové ověření',
|
||||
'login.mfaSubtitle': 'Zadejte 6místný kód z vaší autentizační aplikace.',
|
||||
|
||||
@@ -28,6 +28,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Anmelden mit {name}',
|
||||
'login.oidcOnly': 'Passwort-Authentifizierung ist deaktiviert. Bitte melde dich über deinen SSO-Anbieter an.',
|
||||
'login.oidcLoggedOut': 'Du wurdest abgemeldet. Melde dich erneut über deinen SSO-Anbieter an.',
|
||||
'login.oidcRedirecting': 'Du wirst zu {name} weitergeleitet…',
|
||||
'login.oidcRedirectSlow': 'Noch hier? Weiter zu {name}',
|
||||
'login.demoHint': 'Demo ausprobieren — ohne Registrierung',
|
||||
'login.mfaTitle': 'Zwei-Faktor-Authentifizierung',
|
||||
'login.mfaSubtitle': 'Gib den 6-stelligen Code aus deiner Authenticator-App ein.',
|
||||
|
||||
@@ -28,6 +28,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Sign in with {name}',
|
||||
'login.oidcOnly': 'Password authentication is disabled. Please sign in using your SSO provider.',
|
||||
'login.oidcLoggedOut': 'You have been logged out. Sign in again using your SSO provider.',
|
||||
'login.oidcRedirecting': 'Taking you to {name}…',
|
||||
'login.oidcRedirectSlow': 'Still here? Continue to {name}',
|
||||
'login.demoHint': 'Try the demo — no registration needed',
|
||||
'login.mfaTitle': 'Two-factor authentication',
|
||||
'login.mfaSubtitle': 'Enter the 6-digit code from your authenticator app.',
|
||||
|
||||
@@ -67,6 +67,8 @@ const login: TranslationStrings = {
|
||||
'login.demoHint': 'Prueba la demo: no necesitas registrarte',
|
||||
'login.oidcOnly': 'La autenticación por contraseña está desactivada. Por favor, inicia sesión con tu proveedor SSO.',
|
||||
'login.oidcLoggedOut': 'Has cerrado sesión. Vuelve a iniciar sesión con tu proveedor SSO.',
|
||||
'login.oidcRedirecting': 'Redirigiendo a {name}…',
|
||||
'login.oidcRedirectSlow': '¿Sigues aquí? Continuar a {name}',
|
||||
'login.passkey.signIn': 'Iniciar sesión con una passkey',
|
||||
'login.passkey.failed': 'Error al iniciar sesión con la passkey. Inténtalo de nuevo.',
|
||||
'login.insecureCookie.title': "Login won't stick over HTTP",
|
||||
|
||||
@@ -68,6 +68,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcOnly':
|
||||
"L'authentification par mot de passe est désactivée. Veuillez vous connecter via votre fournisseur SSO.",
|
||||
'login.oidcLoggedOut': 'Vous avez été déconnecté. Reconnectez-vous via votre fournisseur SSO.',
|
||||
'login.oidcRedirecting': 'Redirection vers {name}…',
|
||||
'login.oidcRedirectSlow': 'Toujours ici ? Continuer vers {name}',
|
||||
'login.demoHint': 'Essayez la démo — aucune inscription nécessaire',
|
||||
'login.passkey.signIn': 'Se connecter avec une passkey',
|
||||
'login.passkey.failed': 'Échec de la connexion par passkey. Veuillez réessayer.',
|
||||
|
||||
@@ -30,6 +30,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcOnly':
|
||||
'Ο έλεγχος ταυτότητας με κωδικό είναι απενεργοποιημένος. Παρακαλώ συνδεθείτε χρησιμοποιώντας τον πάροχο SSO σας.',
|
||||
'login.oidcLoggedOut': 'Έχετε αποσυνδεθεί. Συνδεθείτε ξανά χρησιμοποιώντας τον πάροχο SSO σας.',
|
||||
'login.oidcRedirecting': 'Ανακατεύθυνση στο {name}…',
|
||||
'login.oidcRedirectSlow': 'Ακόμα εδώ; Συνέχεια στο {name}',
|
||||
'login.demoHint': 'Δοκιμάστε το demo — δεν απαιτείται εγγραφή',
|
||||
'login.mfaTitle': 'Έλεγχος ταυτότητας δύο παραγόντων',
|
||||
'login.mfaSubtitle': 'Εισάγετε τον 6ψήφιο κωδικό από την εφαρμογή authenticator σας.',
|
||||
|
||||
@@ -29,6 +29,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Bejelentkezés ezzel: {name}',
|
||||
'login.oidcOnly': 'A jelszavas hitelesítés le van tiltva. Kérjük, jelentkezz be az SSO szolgáltatódon keresztül.',
|
||||
'login.oidcLoggedOut': 'Kijelentkeztél. Jelentkezz be újra az SSO szolgáltatódon keresztül.',
|
||||
'login.oidcRedirecting': 'Átirányítás ide: {name}…',
|
||||
'login.oidcRedirectSlow': 'Még mindig itt? Tovább ide: {name}',
|
||||
'login.demoHint': 'Próbáld ki a demót — regisztráció nélkül',
|
||||
'login.mfaTitle': 'Kétfaktoros hitelesítés',
|
||||
'login.mfaSubtitle': 'Add meg a 6 jegyű kódot a hitelesítő alkalmazásból.',
|
||||
|
||||
@@ -28,6 +28,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Masuk dengan {name}',
|
||||
'login.oidcOnly': 'Autentikasi kata sandi dinonaktifkan. Masuk menggunakan penyedia SSO kamu.',
|
||||
'login.oidcLoggedOut': 'Kamu telah keluar. Masuk kembali menggunakan penyedia SSO kamu.',
|
||||
'login.oidcRedirecting': 'Mengalihkan ke {name}…',
|
||||
'login.oidcRedirectSlow': 'Masih di sini? Lanjutkan ke {name}',
|
||||
'login.demoHint': 'Coba demo — tidak perlu registrasi',
|
||||
'login.mfaTitle': 'Autentikasi dua faktor',
|
||||
'login.mfaSubtitle': 'Masukkan kode 6 digit dari aplikasi autentikator kamu.',
|
||||
|
||||
@@ -29,6 +29,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Accedi con {name}',
|
||||
'login.oidcOnly': "L'autenticazione tramite password è disabilitata. Accedi utilizzando il tuo provider SSO.",
|
||||
'login.oidcLoggedOut': 'Sei stato disconnesso. Accedi nuovamente tramite il tuo provider SSO.',
|
||||
'login.oidcRedirecting': 'Reindirizzamento a {name}…',
|
||||
'login.oidcRedirectSlow': 'Ancora qui? Continua su {name}',
|
||||
'login.demoHint': 'Prova la demo — nessuna registrazione necessaria',
|
||||
'login.mfaTitle': 'Autenticazione a due fattori',
|
||||
'login.mfaSubtitle': 'Inserisci il codice a 6 cifre dalla tua app authenticator.',
|
||||
|
||||
@@ -28,6 +28,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': '{name}でサインイン',
|
||||
'login.oidcOnly': 'パスワード認証は無効です。SSOプロバイダーでサインインしてください。',
|
||||
'login.oidcLoggedOut': 'ログアウトしました。SSOプロバイダーで再度サインインしてください。',
|
||||
'login.oidcRedirecting': '{name} に移動しています…',
|
||||
'login.oidcRedirectSlow': 'まだこの画面ですか?{name} に進む',
|
||||
'login.demoHint': 'デモを試す — 登録不要',
|
||||
'login.mfaTitle': '二要素認証',
|
||||
'login.mfaSubtitle': '認証アプリの6桁コードを入力してください。',
|
||||
|
||||
@@ -28,6 +28,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': '{name}으로 로그인',
|
||||
'login.oidcOnly': '비밀번호 인증이 비활성화되었습니다. SSO 공급자로 로그인하세요.',
|
||||
'login.oidcLoggedOut': '로그아웃되었습니다. SSO 공급자로 다시 로그인하세요.',
|
||||
'login.oidcRedirecting': '{name}(으)로 이동하는 중…',
|
||||
'login.oidcRedirectSlow': '아직 이 화면인가요? {name}(으)로 계속',
|
||||
'login.demoHint': '데모 체험 — 회원가입 불필요',
|
||||
'login.mfaTitle': '2단계 인증',
|
||||
'login.mfaSubtitle': '인증 앱의 6자리 코드를 입력하세요.',
|
||||
|
||||
@@ -65,6 +65,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Inloggen met {name}',
|
||||
'login.oidcOnly': 'Wachtwoordauthenticatie is uitgeschakeld. Log in via je SSO-provider.',
|
||||
'login.oidcLoggedOut': 'Je bent uitgelogd. Log opnieuw in via je SSO-provider.',
|
||||
'login.oidcRedirecting': 'Je wordt doorgestuurd naar {name}…',
|
||||
'login.oidcRedirectSlow': 'Nog steeds hier? Verder naar {name}',
|
||||
'login.demoHint': 'Probeer de demo — geen registratie nodig',
|
||||
'login.passkey.signIn': 'Inloggen met een passkey',
|
||||
'login.passkey.failed': 'Inloggen met passkey mislukt. Probeer het opnieuw.',
|
||||
|
||||
@@ -27,6 +27,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Zaloguj się z {name}',
|
||||
'login.oidcOnly': 'Uwierzytelnianie hasłem jest wyłączone. Zaloguj się za pomocą swojego dostawcy SSO.',
|
||||
'login.oidcLoggedOut': 'Zostałeś wylogowany. Zaloguj się ponownie za pomocą swojego dostawcy SSO.',
|
||||
'login.oidcRedirecting': 'Przekierowanie do {name}…',
|
||||
'login.oidcRedirectSlow': 'Nadal tutaj? Przejdź do {name}',
|
||||
'login.demoHint': 'Wypróbuj demo — nie wymaga rejestracji',
|
||||
'login.mfaTitle': 'Uwierzytelnianie dwuskładnikowe',
|
||||
'login.mfaSubtitle': 'Wprowadź 6-cyfrowy kod z aplikacji uwierzytelniającej.',
|
||||
|
||||
@@ -66,6 +66,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Войти через {name}',
|
||||
'login.oidcOnly': 'Вход по паролю отключён. Используйте вашего провайдера SSO для входа.',
|
||||
'login.oidcLoggedOut': 'Вы вышли из системы. Войдите снова через вашего провайдера SSO.',
|
||||
'login.oidcRedirecting': 'Переходим к {name}…',
|
||||
'login.oidcRedirectSlow': 'Всё ещё здесь? Перейти к {name}',
|
||||
'login.demoHint': 'Попробуйте демо — регистрация не требуется',
|
||||
'login.passkey.signIn': 'Войти с помощью passkey',
|
||||
'login.passkey.failed': 'Не удалось войти с помощью passkey. Попробуйте ещё раз.',
|
||||
|
||||
@@ -29,6 +29,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Logga in med {name}',
|
||||
'login.oidcOnly': 'Lösenordsautentisering är inaktiverad. Logga in via din SSO-leverantör.',
|
||||
'login.oidcLoggedOut': 'Du har loggats ut. Logga in igen via din SSO-leverantör.',
|
||||
'login.oidcRedirecting': 'Skickar dig till {name}…',
|
||||
'login.oidcRedirectSlow': 'Fortfarande här? Fortsätt till {name}',
|
||||
'login.demoHint': 'Prova demoversionen – ingen registrering krävs',
|
||||
'login.mfaTitle': 'Tvåfaktorsautentisering',
|
||||
'login.mfaSubtitle': 'Ange den 6-siffriga koden från din autentiseringsapp.',
|
||||
|
||||
@@ -29,6 +29,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': '{name} ile oturum açın',
|
||||
'login.oidcOnly': 'Parola kimlik doğrulaması devre dışı. Lütfen SSO sağlayıcınızı kullanarak oturum açın.',
|
||||
'login.oidcLoggedOut': 'Çıkış yaptınız. SSO sağlayıcınızı kullanarak tekrar oturum açın.',
|
||||
'login.oidcRedirecting': '{name} adresine yönlendiriliyorsunuz…',
|
||||
'login.oidcRedirectSlow': 'Hâlâ burada mısınız? {name} ile devam edin',
|
||||
'login.demoHint': 'Demoyu deneyin; kayıt olmanıza gerek yok',
|
||||
'login.mfaTitle': 'İki faktörlü kimlik doğrulama',
|
||||
'login.mfaSubtitle': 'Kimlik doğrulayıcı uygulamanızdan 6 haneli kodu girin.',
|
||||
|
||||
@@ -65,6 +65,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Увійти через {name}',
|
||||
'login.oidcOnly': 'Вхід за паролем вимкнено. Використайте вашого SSO-провайдера для входу.',
|
||||
'login.oidcLoggedOut': 'Ви вийшли з системи. Увійдіть знову через вашого SSO-провайдера.',
|
||||
'login.oidcRedirecting': 'Переходимо до {name}…',
|
||||
'login.oidcRedirectSlow': 'Досі тут? Перейти до {name}',
|
||||
'login.demoHint': 'Спробуйте демо — реєстрація не потрібна',
|
||||
'login.passkey.signIn': 'Увійти за допомогою passkey',
|
||||
'login.passkey.failed': 'Не вдалося увійти за допомогою passkey. Спробуйте ще раз.',
|
||||
|
||||
@@ -28,6 +28,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': 'Đăng nhập bằng {name}',
|
||||
'login.oidcOnly': 'Xác thực mật khẩu bị vô hiệu hóa. Vui lòng đăng nhập bằng nhà cung cấp SSO của bạn.',
|
||||
'login.oidcLoggedOut': 'Bạn đã đăng xuất. Đăng nhập lại bằng nhà cung cấp SSO của bạn.',
|
||||
'login.oidcRedirecting': 'Đang chuyển đến {name}…',
|
||||
'login.oidcRedirectSlow': 'Vẫn ở đây? Tiếp tục đến {name}',
|
||||
'login.demoHint': 'Hãy thử bản demo - không cần đăng ký',
|
||||
'login.mfaTitle': 'Xác thực hai yếu tố',
|
||||
'login.mfaSubtitle': 'Nhập mã gồm 6 chữ số từ ứng dụng xác thực của bạn.',
|
||||
|
||||
@@ -62,6 +62,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': '透過 {name} 登入',
|
||||
'login.oidcOnly': '密碼登入已關閉。請透過 SSO 提供商登入。',
|
||||
'login.oidcLoggedOut': '您已登出。請重新透過 SSO 提供商登入。',
|
||||
'login.oidcRedirecting': '正在跳轉到 {name}…',
|
||||
'login.oidcRedirectSlow': '還在這裡?繼續前往 {name}',
|
||||
'login.demoHint': '試用演示——無需註冊',
|
||||
'login.passkey.signIn': '使用 Passkey 登入',
|
||||
'login.passkey.failed': 'Passkey 登入失敗,請重試。',
|
||||
|
||||
@@ -62,6 +62,8 @@ const login: TranslationStrings = {
|
||||
'login.oidcSignIn': '通过 {name} 登录',
|
||||
'login.oidcOnly': '密码登录已关闭。请通过 SSO 提供商登录。',
|
||||
'login.oidcLoggedOut': '您已退出登录。请重新通过 SSO 提供商登录。',
|
||||
'login.oidcRedirecting': '正在跳转到 {name}…',
|
||||
'login.oidcRedirectSlow': '还在这里?继续前往 {name}',
|
||||
'login.demoHint': '试用演示——无需注册',
|
||||
'login.passkey.signIn': '使用通行密钥登录',
|
||||
'login.passkey.failed': '通行密钥登录失败,请重试。',
|
||||
|
||||
Reference in New Issue
Block a user