myiam_flutter_sdk 0.8.1
myiam_flutter_sdk: ^0.8.1 copied to clipboard
Authentication SDK for MyIAM service in Flutter.
0.8.1 — 2026-07-16 #
SecureTokenStorage저장 방식을 필드별 개별 키 병렬 write에서 단일 JSON 번들 write로 변경 — 병렬 write 도중 프로세스가 종료(백그라운드 강제 종료, 크래시 등)되면 일부 필드만 갱신된 채 남는 partial write 위험을 제거. 기존에 개별 키로 저장된 데이터는 최초 read 시 번들로 자동 마이그레이션되어 하위 호환됨TokenStorage인터페이스를myiam_flutter_sdk.dart배럴에서 export —tokenStorageProvider(Provider<TokenStorage>)를 커스텀 구현으로 오버라이드하려는 소비자가// ignore: implementation_imports없이 정식으로implements TokenStorage할 수 있도록 함
0.8.0 — 2026-05-29 #
- Device Authorization Grant (RFC 8628) 지원 — WebView를 사용할 수 없는 환경(TV, 데스크톱, CLI 등)에서 외부 브라우저를 통한 인증 플로우 추가.
DeviceLoginScreen위젯(user code 표시·복사, 카운트다운, 재시도 UI)과DeviceLoginControllerNotifier 제공.DeviceAuthClient가/oauth2/device_authorization요청 및 토큰 폴링 처리 autoSignup파라미터 추가 —LoginScreen,SignupScreen,LoginWebView,SignupWebView에bool? autoSignup파라미터 추가. OAuth2 URL에auto_signup쿼리 파라미터로 전달되어 미가입 사용자 자동 가입 여부를 서버에 지시.null(기본값)이면 서버 설정을 따름- 로그아웃 시 서버 토큰 무효화 —
AuthNotifier.logout()이 로컬 정리 전에api.deleteToken()으로 서버 측 access token + refresh token을 무효화. 서버 요청 실패 시에도 로컬 정리는 항상 진행 - 의존성 추가:
url_launcher ^6.3.0(Device Login 브라우저 열기용)
0.7.10 — 2026-05-16 #
MyiamLogger도입 —MyiamLogger.enabled = true로 SDK 내부 디버그 로그 활성화 가능 (기본 비활성). OAuthWebView 콜백 흐름에 상세 로그 추가- pending redirect 큐잉 — Custom Tab dismiss 중 도착한 OAuth 콜백이 유실되던 문제 수정
- iOS Custom Tab 재진입 안정화 — SFSafariViewController dismiss 애니메이션 완료 대기 추가
LoginWebView/SignupWebViewPKCE 재생성 방지 —ConsumerStatefulWidget으로 변환하여initState()에서 1회만 생성
0.7.9 — 2026-05-16 #
- OAuthWebView에서 로그인→가입 전환 콜백 처리 추가 — SNS 로그인(Custom Tab) 중 미가입 사용자가 가입으로 전환되면
signupRedirectUri(?token=...)를 인식하지 못하던 문제 수정._isCallbackUri()헬퍼로redirectUri·signupRedirectUri통합 판별,_handleSignupToken()으로completeRegistration호출 후 2차 OAuth 콜백 처리 - 콜백 인터셉트 테스트 추가
0.7.8 — 2026-05-01 #
- Windows InAppWebView에서 회원가입·로그아웃 리다이렉트가 감지되지 않던 문제 수정 — 0.7.7에서 로그인(OAuthWebView)에만 적용했던
onLoadStart폴백을SignupOAuthWebView·LogoutWebView에도 동일하게 적용
0.7.7 — 2026-04-28 #
- Windows InAppWebView에서 custom scheme 리다이렉트가 감지되지 않던 문제 수정 — WebView2는 custom scheme URL에 대해
shouldOverrideUrlLoading을 발화하지 않으므로, Windows에서만useShouldOverrideUrlLoading=false로 비활성화하고onLoadStart로 리다이렉트를 감지하도록 변경. 다른 플랫폼(macOS/iOS/Android)은 기존 동작 유지
0.7.3 — 2026-04-28 #
- Windows 플랫폼에서
ChromeSafariBrowser미지원으로 인한 런타임 에러 수정 —resolveWebViewMode가 Windows에서도inAppWebView로 자동 폴백 MyiamAction.launch()static 메서드에 플랫폼 가드 추가 — macOS·Windows 등 Custom Tab 미지원 환경에서onError콜백으로 안내 후 조기 반환
0.7.2 — 2026-04-27 #
RegisterCompleteUser.profiles필드를 nullable(UserProfiles?)로 변경 —completeRegistrationAPI 응답에서user.profiles가null일 때 발생하던 런타임 캐스팅 에러 수정
0.7.1 — 2026-04-26 #
- 전체 의존성 최신화: flutter_riverpod 3.3.1, flutter_secure_storage 10.0.0, app_links 7.0.0, http 1.6.0, crypto 3.0.7, mocktail 1.0.5, flutter_lints 6.0.0
- Riverpod 3 마이그레이션:
StateNotifier/StateNotifierProvider→Notifier/NotifierProvider SecureTokenStorage: deprecatedencryptedSharedPreferences제거 (flutter_secure_storage 10 대응)
0.7.0 — 2026-04-24 #
- 자동 토큰 갱신:
TokenRefreshPolicy도입 —expiresIn × thresholdFactor(기본 0.8) 시점에 자동 갱신, 실패 시 지수 백오프 재시도 (30s → 60s → 120s → 300s).MyiamConfig.refreshPolicy로 설정하며null로 비활성화 가능 - 네트워크 오류 시 세션 보존:
refreshToken()이MyiamApiError(서버 거부)에서만 로그아웃 처리. 네트워크 일시 장애는 세션을 보존하고 자동 재시도 스케줄 - 세션 복원 개선: 앱 재시작 시 SecureStorage에 저장된 토큰 + 사용자 정보를 동시 복원하여 즉시
AuthStateAuthenticated상태로 전환 setAuthenticated()반환 타입void→Future<void>— 토큰 + 사용자 정보를 SecureStorage에 저장 완료까지 대기TokenStorage인터페이스 확장:readUser(),writeUser(),deleteUser()추가SecureTokenStorage: iOS/macOS Keychainfirst_unlock접근성 설정 + macOS 중복 항목 workaround- HTTP 클라이언트 관리 개선: 외부 주입 없으면 요청별
http.Client생성·해제 (connection leak 방지) MyiamApiError.fromResponse()factory 추가 — HTTP 응답 에러 파싱 중앙화MyiamUser.toJson()추가- 토큰 갱신 이력 추적:
TokenRefreshRecord모델 +AuthNotifier.refreshHistorygetter
0.6.0 — 2026-04-19 #
MyiamAction/MyiamWebPage에onRedirect(Uri uri)?콜백 추가 — 완료 URL의 query 파라미터(?token=...등)를 필요로 하는 플로우(수동 탈퇴, 수동가입 등)에 사용. 기존onComplete와 병행 호출되며 호환성 유지MyiamConfig에deregisterRedirectScheme/deregisterRedirectHost/deregisterRedirectUri추가 — 수동 탈퇴 콜백 URL을 OAuth2 redirect_uri와 별개로 지정. MyIAM 콘솔의 "수동 탈퇴 콜백" 필드 전용. 미지정 시redirectUri로 fallback (signup 패턴과 동일)- 버그 픽스:
MyiamAction이 macOS에서 크래시하던 문제 해결._prepare가widget.mode대신_effectiveMode(resolveWebViewMode 적용)를 체크해 macOS에서 InAppWebView로 정상 fallback
0.5.0 — 2026-04-18 #
- 수동 회원가입 지원:
SignupWebView가 수동가입 1차 콜백(?token=)을 감지하면api.completeRegistration을 자동 호출한 뒤 응답redirect_url로 재진입해 2차 콜백(?code=&state=)까지 한 흐름으로 처리. 자동로그인/사용자 로그인 두 케이스 모두 동일한 PKCE verifier로 커버됨 MyiamConfig에signupRedirectScheme/signupRedirectHost/signupRedirectUri추가 — 수동가입 콜백 URL을 OAuth2 redirect_uri와 별개로 설정. 수동가입 콜백은 OAuth2 파라미터에 포함되지 않으며 MyIAM 콘솔의 "수동가입 콜백" 필드에만 등록. 미지정 시redirectUri로 fallback
0.4.0 — 2026-04-16 #
MyiamAction:mode파라미터 추가 —customTab(Chrome Custom Tab) /inAppWebView선택 가능MyiamAction.launch()static 메서드 추가 — 위젯 없이 Custom Tab으로 사용자 액션 실행MyiamWebPage:transparentBackground설정 추가
0.3.6 — 2026-04-09 #
completePreparationAPI 메서드 추가completeRegistration파라미터 변경: 위치 파라미터 → named 파라미터{token, customFields?}body 방식
0.3.5 — 2026-04-01 #
- LoginScreen/SignupScreen: onBack 미지정 시 기본 Navigator.pop() 동작 추가
- 디버그 코드 및 미사용 코드 제거
0.3.4 — 2026-03-29 #
- InAppWebView focus 관련 변경 revert (0.3.2–0.3.3)
0.3.0 — 2026-03-28 #
- 최초 릴리스
- OAuth2 PKCE 인증 (로그인, 회원가입, 로그아웃)
- Riverpod 상태 관리
- 보안 토큰 저장소
- MyIAM API 클라이언트