forked from baron/baron-sso
2.0 KiB
2.0 KiB
UserFront Error Handling Policy
1. 목적
- UserFront의
/error화면에서 에러 코드 노출 정책을 일관되게 유지합니다. - Ory에서 전달되는 표준 에러 코드는 별도 bypass 규칙으로 처리합니다.
- 내부 코드와 번역 리소스의 누락을 자동 검증합니다.
2. 처리 원칙
- 프로덕션에서 에러 분기 기준은
error문자열이 아니라code입니다. ORY error code는 bypass 규칙으로 처리합니다.- ORY 코드 외 항목은 내부 whitelist를 기준으로 노출합니다.
- whitelist/bypass에 없는 코드는
unknown_error로 처리합니다.
3. 코드 분류
기준 파일: userfront/lib/core/constants/error_whitelist.dart
3.1 Internal whitelist
settings_disabledinvalid_sessionverification_requiredrecovery_expiredrecovery_invalidrate_limitednot_foundbad_requestpassword_or_email_mismatch
3.2 ORY bypass
access_deniedconsent_requiredinteraction_requiredinvalid_clientinvalid_grantinvalid_requestinvalid_scopelogin_requiredrequest_forbiddenserver_errortemporarily_unavailableunauthorized_clientunsupported_response_type
4. i18n 키 구조
- 내부 whitelist:
msg.userfront.error.whitelist.{code} - ORY bypass:
msg.userfront.error.ory.{code}
리소스는 아래 파일 모두에 키가 있어야 합니다.
locales/template.tomllocales/ko.tomllocales/en.tomluserfront/assets/translations/template.tomluserfront/assets/translations/ko.tomluserfront/assets/translations/en.toml
5. 검증
키 누락 검증 스크립트:
./scripts/verify_userfront_error_i18n.sh
화면 동작 테스트:
cd userfront
flutter test test/error_screen_test.dart
6. 관련 이슈
#164[UserFront] 에러 노출 whitelist 정의 및 적용#259백엔드 i18n/에러 메시지 fallback 정책 재정리 및 반영 계획 수립#260[Backend] 에러 응답 code 통일 구현 계획 (phase rollout)