diff --git a/backend/chainlit/server.py b/backend/chainlit/server.py index 4d53390e50..503ba95e2a 100644 --- a/backend/chainlit/server.py +++ b/backend/chainlit/server.py @@ -671,7 +671,8 @@ async def oauth_callback( if error: logger.warning("OAuth provider %s returned error: %s", provider_id, error) - return _get_oauth_redirect_error(request, "oauthSignin") + error_key = "oauthAccessDenied" if error == "access_denied" else "oauthSignin" + return _get_oauth_redirect_error(request, error_key) if not code or not state: return _get_oauth_redirect_error(request, "oauthSignin") @@ -736,7 +737,8 @@ async def oauth_azure_hf_callback( if error: logger.warning("OAuth provider %s returned error: %s", provider_id, error) - return _get_oauth_redirect_error(request, "oauthSignin", status_code=303) + error_key = "oauthAccessDenied" if error == "access_denied" else "oauthSignin" + return _get_oauth_redirect_error(request, error_key, status_code=303) if not code: return _get_oauth_redirect_error(request, "oauthSignin", status_code=303) diff --git a/backend/chainlit/translations/ar-SA.json b/backend/chainlit/translations/ar-SA.json index 3725231cc3..b56c8cd2b3 100644 --- a/backend/chainlit/translations/ar-SA.json +++ b/backend/chainlit/translations/ar-SA.json @@ -40,6 +40,7 @@ "default": "تعذر تسجيل الدخول", "signin": "حاول تسجيل الدخول بحساب آخر", "oauthSignin": "فشل تسجيل الدخول. يرجى المحاولة مرة أخرى، أو استخدام طريقة تسجيل دخول مختلفة.", + "oauthAccessDenied": "تم إلغاء تسجيل الدخول أو تم رفض الوصول. إذا كان هذا عن طريق الخطأ، يرجى المحاولة مرة أخرى.", "redirectUriMismatch": "عنوان URI لإعادة التوجيه لا يتطابق مع تكوين تطبيق OAuth", "oauthCallback": "حاول تسجيل الدخول بحساب آخر", "oauthCreateAccount": "حاول تسجيل الدخول بحساب آخر", diff --git a/backend/chainlit/translations/bn.json b/backend/chainlit/translations/bn.json index 9c9cc686a0..50b6a3d481 100644 --- a/backend/chainlit/translations/bn.json +++ b/backend/chainlit/translations/bn.json @@ -40,6 +40,7 @@ "default": "সাইন ইন করা সম্ভব হচ্ছে না", "signin": "অন্য একটি অ্যাকাউন্ট দিয়ে সাইন ইন করার চেষ্টা করুন", "oauthSignin": "সাইন ইন ব্যর্থ হয়েছে। আবার চেষ্টা করুন, অথবা অন্য একটি সাইন ইন পদ্ধতি ব্যবহার করুন।", + "oauthAccessDenied": "সাইন ইন বাতিল করা হয়েছে বা অ্যাক্সেস অস্বীকার করা হয়েছে। যদি এটি ভুলবশত হয়ে থাকে, অনুগ্রহ করে আবার চেষ্টা করুন।", "redirectUriMismatch": "রিডাইরেক্ট URI ওআথ অ্যাপ কনফিগারেশনের সাথে মিলছে না", "oauthCallback": "অন্য একটি অ্যাকাউন্ট দিয়ে সাইন ইন করার চেষ্টা করুন", "oauthCreateAccount": "অন্য একটি অ্যাকাউন্ট দিয়ে সাইন ইন করার চেষ্টা করুন", diff --git a/backend/chainlit/translations/da-DK.json b/backend/chainlit/translations/da-DK.json index 6f967f2415..b2b17f8948 100644 --- a/backend/chainlit/translations/da-DK.json +++ b/backend/chainlit/translations/da-DK.json @@ -40,6 +40,7 @@ "default": "Kunne ikke logge ind", "signin": "Prøv at logge ind med en anden konto", "oauthSignin": "Log ind mislykkedes. Prøv igen, eller brug en anden loginmetode.", + "oauthAccessDenied": "Login blev annulleret, eller adgang blev nægtet. Hvis det var en fejl, så prøv igen.", "redirectUriMismatch": "Omdirigerings-URI'en matcher ikke oauth-app konfigurationen", "oauthCallback": "Prøv at logge ind med en anden konto", "oauthCreateAccount": "Prøv at logge ind med en anden konto", diff --git a/backend/chainlit/translations/de-DE.json b/backend/chainlit/translations/de-DE.json index 2a43cc17b2..f88805d579 100644 --- a/backend/chainlit/translations/de-DE.json +++ b/backend/chainlit/translations/de-DE.json @@ -40,6 +40,7 @@ "default": "Anmeldung fehlgeschlagen", "signin": "Versuche dich mit einem anderen Konto anzumelden", "oauthSignin": "Anmeldung fehlgeschlagen. Bitte versuche es erneut oder verwende eine andere Anmeldemethode.", + "oauthAccessDenied": "Die Anmeldung wurde abgebrochen oder der Zugriff wurde verweigert. Falls dies ein Versehen war, versuchen Sie es bitte erneut.", "redirectUriMismatch": "Der Redirect-URI stimmt nicht mit der Konfiguration der Oauth-Anwendung überein", "oauthCallback": "Versuche dich mit einem anderen Konto anzumelden", "oauthCreateAccount": "Versuche dich mit einem anderen Konto anzumelden", diff --git a/backend/chainlit/translations/el-GR.json b/backend/chainlit/translations/el-GR.json index a0033f500b..d492caf3be 100644 --- a/backend/chainlit/translations/el-GR.json +++ b/backend/chainlit/translations/el-GR.json @@ -40,6 +40,7 @@ "default": "Δεν είναι δυνατή η σύνδεση", "signin": "Δοκιμάστε να συνδεθείτε με διαφορετικό λογαριασμό", "oauthSignin": "Η σύνδεση απέτυχε. Παρακαλώ δοκιμάστε ξανά ή χρησιμοποιήστε διαφορετική μέθοδο σύνδεσης.", + "oauthAccessDenied": "Η σύνδεση ακυρώθηκε ή η πρόσβαση απορρίφθηκε. Αν έγινε κατά λάθος, δοκιμάστε ξανά.", "redirectUriMismatch": "Ο σύνδεσμος ανακατεύθυνσης δεν ταιριάζει με τη ρύθμιση της αυθεντικοποιήσης της εφαρμογής", "oauthCallback": "Δοκιμάστε να συνδεθείτε με διαφορετικό λογαριασμό", "oauthCreateAccount": "Δοκιμάστε να συνδεθείτε με διαφορετικό λογαριασμό", diff --git a/backend/chainlit/translations/en-US.json b/backend/chainlit/translations/en-US.json index f20f6a724d..3449f00354 100644 --- a/backend/chainlit/translations/en-US.json +++ b/backend/chainlit/translations/en-US.json @@ -40,6 +40,7 @@ "default": "Unable to sign in", "signin": "Try signing in with a different account", "oauthSignin": "Sign in failed. Please try again, or use a different sign-in method.", + "oauthAccessDenied": "Sign in was cancelled or access was denied. If this was a mistake, please try again.", "redirectUriMismatch": "The redirect URI is not matching the oauth app configuration", "oauthCallback": "Try signing in with a different account", "oauthCreateAccount": "Try signing in with a different account", diff --git a/backend/chainlit/translations/es.json b/backend/chainlit/translations/es.json index 6767ff6432..1a787c9a0c 100644 --- a/backend/chainlit/translations/es.json +++ b/backend/chainlit/translations/es.json @@ -40,6 +40,7 @@ "default": "No se pudo iniciar sesión", "signin": "Intenta iniciar sesión con otra cuenta", "oauthSignin": "Error al iniciar sesión. Por favor, inténtalo de nuevo o usa un método de inicio de sesión diferente.", + "oauthAccessDenied": "El inicio de sesión se canceló o se denegó el acceso. Si fue un error, vuelva a intentarlo.", "redirectUriMismatch": "El URI de redirección no coincide con la configuración de la aplicación OAuth", "oauthCallback": "Intenta iniciar sesión con otra cuenta", "oauthCreateAccount": "Intenta iniciar sesión con otra cuenta", diff --git a/backend/chainlit/translations/fr-FR.json b/backend/chainlit/translations/fr-FR.json index aaa98ded12..2a7bd0616c 100644 --- a/backend/chainlit/translations/fr-FR.json +++ b/backend/chainlit/translations/fr-FR.json @@ -40,6 +40,7 @@ "default": "Impossible de se connecter", "signin": "Essayez de vous connecter avec un autre compte", "oauthSignin": "La connexion a échoué. Veuillez réessayer ou utiliser un autre mode de connexion.", + "oauthAccessDenied": "La connexion a été annulée ou l'accès a été refusé. Si c'est une erreur, veuillez réessayer.", "redirectUriMismatch": "L'URI de redirection ne correspond pas à la configuration de l'application oauth", "oauthCallback": "Essayez de vous connecter avec un autre compte", "oauthCreateAccount": "Essayez de vous connecter avec un autre compte", diff --git a/backend/chainlit/translations/gu.json b/backend/chainlit/translations/gu.json index 98f425fb69..3462ba3b16 100644 --- a/backend/chainlit/translations/gu.json +++ b/backend/chainlit/translations/gu.json @@ -40,6 +40,7 @@ "default": "સાઇન ઇન કરી શકાયું નથી", "signin": "અલગ એકાઉન્ટથી સાઇન ઇન કરવાનો પ્રયાસ કરો", "oauthSignin": "સાઇન ઇન નિષ્ફળ ગઈ. કૃપા કરીને ફરી પ્રયાસ કરો, અથવા અલગ સાઇન ઇન પદ્ધતિનો ઉપયોગ કરો.", + "oauthAccessDenied": "સાઇન ઇન રદ કરવામાં આવ્યું અથવા ઍક્સેસ નકારવામાં આવી. જો આ ભૂલથી થયું હોય, તો કૃપા કરીને ફરી પ્રયાસ કરો.", "redirectUriMismatch": "રીડાયરેક્ટ URI oauth ઍપ કન્ફિગરેશન સાથે મેળ ખાતો નથી", "oauthCallback": "અલગ એકાઉન્ટથી સાઇન ઇન કરવાનો પ્રયાસ કરો", "oauthCreateAccount": "અલગ એકાઉન્ટથી સાઇન ઇન કરવાનો પ્રયાસ કરો", diff --git a/backend/chainlit/translations/he-IL.json b/backend/chainlit/translations/he-IL.json index 0a4631ad2b..6522490f4c 100644 --- a/backend/chainlit/translations/he-IL.json +++ b/backend/chainlit/translations/he-IL.json @@ -40,6 +40,7 @@ "default": "לא ניתן להתחבר", "signin": "נסה להתחבר עם חשבון אחר", "oauthSignin": "הכניסה נכשלה. אנא נסה שוב, או השתמש בשיטת כניסה אחרת.", + "oauthAccessDenied": "ההתחברות בוטלה או שהגישה נדחתה. אם זו הייתה טעות, אנא נסה שוב.", "redirectUriMismatch": "כתובת ההפניה אינה תואמת את תצורת אפליקציית OAuth", "oauthCallback": "נסה להתחבר עם חשבון אחר", "oauthCreateAccount": "נסה להתחבר עם חשבון אחר", diff --git a/backend/chainlit/translations/hi.json b/backend/chainlit/translations/hi.json index 04e56bd55f..5c48770a03 100644 --- a/backend/chainlit/translations/hi.json +++ b/backend/chainlit/translations/hi.json @@ -40,6 +40,7 @@ "default": "साइन इन करने में असमर्थ", "signin": "किसी दूसरे खाते से साइन इन करने का प्रयास करें", "oauthSignin": "साइन इन विफल हुआ। कृपया पुनः प्रयास करें, या कोई अन्य साइन इन विधि उपयोग करें।", + "oauthAccessDenied": "साइन इन रद्द कर दिया गया या एक्सेस अस्वीकार कर दिया गया। यदि यह गलती से हुआ है, तो कृपया पुनः प्रयास करें।", "redirectUriMismatch": "रीडायरेक्ट URI oauth ऐप कॉन्फ़िगरेशन से मेल नहीं खा रहा", "oauthCallback": "किसी दूसरे खाते से साइन इन करने का प्रयास करें", "oauthCreateAccount": "किसी दूसरे खाते से साइन इन करने का प्रयास करें", diff --git a/backend/chainlit/translations/it.json b/backend/chainlit/translations/it.json index e5ce813556..de554c694c 100644 --- a/backend/chainlit/translations/it.json +++ b/backend/chainlit/translations/it.json @@ -40,6 +40,7 @@ "default": "Impossibile effettuare l'accesso", "signin": "Prova ad accedere con un account diverso", "oauthSignin": "Accesso non riuscito. Riprova o utilizza un metodo di accesso diverso.", + "oauthAccessDenied": "L'accesso è stato annullato o l'autorizzazione è stata negata. Se è stato un errore, riprova.", "redirectUriMismatch": "L'URI di reindirizzamento non corrisponde alla configurazione dell'app OAuth", "oauthCallback": "Prova ad accedere con un account diverso", "oauthCreateAccount": "Prova ad accedere con un account diverso", diff --git a/backend/chainlit/translations/ja.json b/backend/chainlit/translations/ja.json index 965a09ec04..73080487ca 100644 --- a/backend/chainlit/translations/ja.json +++ b/backend/chainlit/translations/ja.json @@ -40,6 +40,7 @@ "default": "サインインできません", "signin": "別のアカウントでサインインしてください", "oauthSignin": "サインインに失敗しました。もう一度お試しいただくか、別のサインイン方法をお使いください。", + "oauthAccessDenied": "サインインがキャンセルされたか、アクセスが拒否されました。誤りの場合は、もう一度お試しください。", "redirectUriMismatch": "リダイレクトURIがOAuthアプリの設定と一致しません", "oauthCallback": "別のアカウントでサインインしてください", "oauthCreateAccount": "別のアカウントでサインインしてください", diff --git a/backend/chainlit/translations/kn.json b/backend/chainlit/translations/kn.json index d5fc2d8380..8743a79af2 100644 --- a/backend/chainlit/translations/kn.json +++ b/backend/chainlit/translations/kn.json @@ -40,6 +40,7 @@ "default": "ಸೈನ್ ಇನ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ", "signin": "ಬೇರೆ ಖಾತೆಯೊಂದಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ", "oauthSignin": "ಸೈನ್ ಇನ್ ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ, ಅಥವಾ ಬೇರೆ ಸೈನ್ ಇನ್ ವಿಧಾನ ಬಳಸಿ.", + "oauthAccessDenied": "ಸೈನ್ ಇನ್ ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ ಅಥವಾ ಪ್ರವೇಶವನ್ನು ನಿರಾಕರಿಸಲಾಗಿದೆ. ಇದು ತಪ್ಪಾಗಿ ಆಗಿದ್ದರೆ, ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.", "redirectUriMismatch": "ರೀಡೈರೆಕ್ಟ್ URI ಓಥ್ ಅಪ್ಲಿಕೇಶನ್ ಕಾನ್ಫಿಗರೇಶನ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ", "oauthCallback": "ಬೇರೆ ಖಾತೆಯೊಂದಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ", "oauthCreateAccount": "ಬೇರೆ ಖಾತೆಯೊಂದಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ", diff --git a/backend/chainlit/translations/ko.json b/backend/chainlit/translations/ko.json index be1dc295a6..b74c182e40 100644 --- a/backend/chainlit/translations/ko.json +++ b/backend/chainlit/translations/ko.json @@ -40,6 +40,7 @@ "default": "로그인할 수 없습니다", "signin": "다른 계정으로 로그인해보세요", "oauthSignin": "로그인에 실패했습니다. 다시 시도하거나 다른 로그인 방법을 사용해 주세요.", + "oauthAccessDenied": "로그인이 취소되었거나 접근이 거부되었습니다. 실수였다면 다시 시도해 주세요.", "redirectUriMismatch": "리다이렉트 URI가 OAuth 앱 설정과 일치하지 않습니다", "oauthCallback": "다른 계정으로 로그인해보세요", "oauthCreateAccount": "다른 계정으로 로그인해보세요", diff --git a/backend/chainlit/translations/ml.json b/backend/chainlit/translations/ml.json index f35ac7762c..3252480675 100644 --- a/backend/chainlit/translations/ml.json +++ b/backend/chainlit/translations/ml.json @@ -40,6 +40,7 @@ "default": "സൈൻ ഇൻ ചെയ്യാൻ കഴിയുന്നില്ല", "signin": "മറ്റൊരു അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യാൻ ശ്രമിക്കുക", "oauthSignin": "സൈൻ ഇൻ പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക, അല്ലെങ്കിൽ മറ്റൊരു സൈൻ ഇൻ രീതി ഉപയോഗിക്കുക.", + "oauthAccessDenied": "സൈൻ ഇൻ റദ്ദാക്കി അല്ലെങ്കിൽ ആക്സസ് നിരസിച്ചു. ഇത് അബദ്ധത്തിൽ സംഭവിച്ചതാണെങ്കിൽ, ദയവായി വീണ്ടും ശ്രമിക്കുക.", "redirectUriMismatch": "റീഡയറക്ട് URI oauth ആപ്പ് കോൺഫിഗറേഷനുമായി പൊരുത്തപ്പെടുന്നില്ല", "oauthCallback": "മറ്റൊരു അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യാൻ ശ്രമിക്കുക", "oauthCreateAccount": "മറ്റൊരു അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യാൻ ശ്രമിക്കുക", diff --git a/backend/chainlit/translations/mr.json b/backend/chainlit/translations/mr.json index 52e83c69c1..a9916620d8 100644 --- a/backend/chainlit/translations/mr.json +++ b/backend/chainlit/translations/mr.json @@ -40,6 +40,7 @@ "default": "साइन इन करू शकत नाही", "signin": "वेगळ्या खात्याने साइन इन करण्याचा प्रयत्न करा", "oauthSignin": "साइन इन अयशस्वी झाले. कृपया पुन्हा प्रयत्न करा, किंवा वेगळी साइन इन पद्धत वापरा.", + "oauthAccessDenied": "साइन इन रद्द केले गेले किंवा प्रवेश नाकारला गेला. हे चुकून झाले असल्यास, कृपया पुन्हा प्रयत्न करा.", "redirectUriMismatch": "रीडायरेक्ट URI ओथ अॅप कॉन्फिगरेशनशी जुळत नाही", "oauthCallback": "वेगळ्या खात्याने साइन इन करण्याचा प्रयत्न करा", "oauthCreateAccount": "वेगळ्या खात्याने साइन इन करण्याचा प्रयत्न करा", diff --git a/backend/chainlit/translations/nl.json b/backend/chainlit/translations/nl.json index c8177cbcca..ff73278067 100644 --- a/backend/chainlit/translations/nl.json +++ b/backend/chainlit/translations/nl.json @@ -40,6 +40,7 @@ "default": "Kan niet inloggen", "signin": "Probeer in te loggen met een ander account", "oauthSignin": "Inloggen mislukt. Probeer het opnieuw of gebruik een andere aanmeldmethode.", + "oauthAccessDenied": "Het inloggen is geannuleerd of de toegang is geweigerd. Als dit een vergissing was, probeer het opnieuw.", "redirectUriMismatch": "De redirect URI komt niet overeen met de oauth app configuratie", "oauthCallback": "Probeer in te loggen met een ander account", "oauthCreateAccount": "Probeer in te loggen met een ander account", diff --git a/backend/chainlit/translations/pt-PT.json b/backend/chainlit/translations/pt-PT.json index b01e521b0d..a71d981754 100644 --- a/backend/chainlit/translations/pt-PT.json +++ b/backend/chainlit/translations/pt-PT.json @@ -40,6 +40,7 @@ "default": "Não foi possível iniciar sessão", "signin": "Tente iniciar sessão com outra conta", "oauthSignin": "Falha no início de sessão. Por favor, tente novamente ou utilize um método de início de sessão diferente.", + "oauthAccessDenied": "O in\u00edcio de sess\u00e3o foi cancelado ou o acesso foi negado. Se foi um engano, tente novamente.", "redirectUriMismatch": "O URI de redirecionamento não corresponde à configuração da aplicação OAuth", "oauthCallback": "Tente iniciar sessão com outra conta", "oauthCreateAccount": "Tente iniciar sessão com outra conta", diff --git a/backend/chainlit/translations/ta.json b/backend/chainlit/translations/ta.json index 0701c92adc..37d404d0e9 100644 --- a/backend/chainlit/translations/ta.json +++ b/backend/chainlit/translations/ta.json @@ -40,6 +40,7 @@ "default": "உள்நுழைய முடியவில்லை", "signin": "வேறு கணக்குடன் உள்நுழைய முயற்சிக்கவும்", "oauthSignin": "உள்நுழைவு தோல்வியடைந்தது. மீண்டும் முயற்சிக்கவும், அல்லது வேறு உள்நுழைவு முறையைப் பயன்படுத்தவும்.", + "oauthAccessDenied": "உள்நுழைவு ரத்து செய்யப்பட்டது அல்லது அணுகல் மறுக்கப்பட்டது. இது தவறுதலாக நிகழ்ந்திருந்தால், மீண்டும் முயற்சிக்கவும்.", "redirectUriMismatch": "திசைதிருப்பல் URI ஓஆத் பயன்பாட்டு கட்டமைப்புடன் பொருந்தவில்லை", "oauthCallback": "வேறு கணக்குடன் உள்நுழைய முயற்சிக்கவும்", "oauthCreateAccount": "வேறு கணக்குடன் உள்நுழைய முயற்சிக்கவும்", diff --git a/backend/chainlit/translations/te.json b/backend/chainlit/translations/te.json index ed83818c89..5a4293854c 100644 --- a/backend/chainlit/translations/te.json +++ b/backend/chainlit/translations/te.json @@ -40,6 +40,7 @@ "default": "సైన్ ఇన్ చేయలేకపోయాము", "signin": "వేరే ఖాతాతో సైన్ ఇన్ చేయడానికి ప్రయత్నించండి", "oauthSignin": "సైన్ ఇన్ విఫలమైంది. దయచేసి మళ్ళీ ప్రయత్నించండి, లేదా వేరే సైన్ ఇన్ పద్ధతిని ఉపయోగించండి.", + "oauthAccessDenied": "సైన్ ఇన్ రద్దు చేయబడింది లేదా యాక్సెస్ నిరాకరించబడింది. ఇది పొరపాటున జరిగితే, దయచేసి మళ్లీ ప్రయత్నించండి.", "redirectUriMismatch": "రీడైరెక్ట్ URI oauth యాప్ కాన్ఫిగరేషన్‌తో సరిపోలడం లేదు", "oauthCallback": "వేరే ఖాతాతో సైన్ ఇన్ చేయడానికి ప్రయత్నించండి", "oauthCreateAccount": "వేరే ఖాతాతో సైన్ ఇన్ చేయడానికి ప్రయత్నించండి", diff --git a/backend/chainlit/translations/zh-CN.json b/backend/chainlit/translations/zh-CN.json index e8307ab423..3872b1a584 100644 --- a/backend/chainlit/translations/zh-CN.json +++ b/backend/chainlit/translations/zh-CN.json @@ -40,6 +40,7 @@ "default": "无法登录", "signin": "请尝试使用其他账号登录", "oauthSignin": "登录失败。请重试,或使用其他登录方式。", + "oauthAccessDenied": "登录已取消或访问被拒绝。如果这是误操作,请重试。", "redirectUriMismatch": "重定向URI与OAuth应用配置不匹配", "oauthCallback": "请尝试使用其他账号登录", "oauthCreateAccount": "请尝试使用其他账号登录", diff --git a/backend/chainlit/translations/zh-TW.json b/backend/chainlit/translations/zh-TW.json index fa0c62a5df..bafafb0a29 100644 --- a/backend/chainlit/translations/zh-TW.json +++ b/backend/chainlit/translations/zh-TW.json @@ -40,6 +40,7 @@ "default": "無法登入", "signin": "請嘗試使用其它帳號登入", "oauthSignin": "登入失敗。請重試,或使用其他登入方式。", + "oauthAccessDenied": "登入已取消或存取遭拒。如果這是誤操作,請重試。", "redirectUriMismatch": "重新導向URI與OAuth App設定不相符", "oauthCallback": "請嘗試使用其它帳號登入", "oauthCreateAccount": "請嘗試使用其它帳號登入", diff --git a/backend/tests/test_server.py b/backend/tests/test_server.py index 2ba3333550..ad2a0f3f13 100644 --- a/backend/tests/test_server.py +++ b/backend/tests/test_server.py @@ -1180,13 +1180,28 @@ def test_oauth_callback_provider_error_redirects( test_config, mock_oauth_provider, ): - """Provider-returned error param already redirects — guard the existing path.""" + """An explicit access denial gets a specific user-facing error.""" test_config.code.oauth_callback = AsyncMock() response = test_client.get( "/auth/oauth/github/callback?error=access_denied", follow_redirects=False, ) assert response.status_code == 302 + assert "error=oauthAccessDenied" in response.headers["location"] + + +def test_oauth_callback_other_provider_error_redirects( + test_client: TestClient, + test_config, + mock_oauth_provider, +): + """Other provider errors continue to use the generic OAuth message.""" + test_config.code.oauth_callback = AsyncMock() + response = test_client.get( + "/auth/oauth/github/callback?error=temporarily_unavailable", + follow_redirects=False, + ) + assert response.status_code == 302 assert "error=oauthSignin" in response.headers["location"] @@ -1275,13 +1290,13 @@ def test_oauth_azure_hf_callback_missing_code_redirects( assert "error=oauthSignin" in response.headers["location"] -def test_oauth_azure_hf_callback_form_error_redirects( +def test_oauth_azure_hf_callback_access_denied_form_error_redirects( test_client: TestClient, test_config, mock_oauth_provider, caplog: pytest.LogCaptureFixture, ): - """Azure posts errors as form fields (response_mode=form_post), not query params.""" + """Azure form-post access denials get the specific user-facing error.""" test_config.code.oauth_callback = AsyncMock() with caplog.at_level(logging.WARNING, logger="chainlit"): response = test_client.post( @@ -1290,13 +1305,29 @@ def test_oauth_azure_hf_callback_form_error_redirects( follow_redirects=False, ) assert response.status_code == 303 - assert "error=oauthSignin" in response.headers["location"] + assert "error=oauthAccessDenied" in response.headers["location"] assert any( "returned error: access_denied" in record.getMessage() for record in caplog.records ) +def test_oauth_azure_hf_callback_other_form_error_redirects( + test_client: TestClient, + test_config, + mock_oauth_provider, +): + """Other Azure form-post errors continue to use the generic OAuth message.""" + test_config.code.oauth_callback = AsyncMock() + response = test_client.post( + "/auth/oauth/azure-ad-hybrid/callback", + data={"error": "temporarily_unavailable"}, + follow_redirects=False, + ) + assert response.status_code == 303 + assert "error=oauthSignin" in response.headers["location"] + + def test_oauth_azure_hf_callback_get_token_error_redirects( test_client: TestClient, test_config, diff --git a/backend/tests/test_translations.py b/backend/tests/test_translations.py index 6e517c4748..84a1d75ba4 100644 --- a/backend/tests/test_translations.py +++ b/backend/tests/test_translations.py @@ -1,11 +1,27 @@ +import json from io import StringIO +from pathlib import Path from unittest.mock import patch import pytest +from chainlit.config import TRANSLATIONS_DIR from chainlit.translations import compare_json_structures, lint_translation_json +def test_oauth_access_denied_present_in_all_locales(): + locale_files = sorted(Path(TRANSLATIONS_DIR).glob("*.json")) + assert len(locale_files) == 23 + + for locale_file in locale_files: + errors = json.loads(locale_file.read_text(encoding="utf-8"))["auth"]["login"][ + "errors" + ] + message = errors.get("oauthAccessDenied") + assert isinstance(message, str), f"{locale_file.name} is missing the key" + assert message.strip(), f"{locale_file.name} has an empty message" + + class TestCompareJsonStructures: """Test suite for compare_json_structures function.""" diff --git a/cypress/e2e/oauth_auth/spec.cy.ts b/cypress/e2e/oauth_auth/spec.cy.ts index fbdf8a8ec3..02cbd106be 100644 --- a/cypress/e2e/oauth_auth/spec.cy.ts +++ b/cypress/e2e/oauth_auth/spec.cy.ts @@ -8,7 +8,7 @@ describe('OAuth Auth Error UX (#1273)', () => { }).then((response) => { expect(response.status).to.equal(302); expect(response.headers['location']).to.include( - '/login?error=oauthSignin' + '/login?error=oauthAccessDenied' ); }); }); @@ -39,5 +39,14 @@ describe('OAuth Auth Error UX (#1273)', () => { ); cy.get('body').should('not.contain', '{"detail"'); }); + + it('shows a specific message for oauthAccessDenied error', () => { + cy.visit('/login?error=oauthAccessDenied'); + cy.get('[role="alert"]').should( + 'contain', + 'Sign in was cancelled or access was denied. If this was a mistake, please try again.' + ); + cy.get('body').should('not.contain', '{"detail"'); + }); }); });