connectbase-client 3.26.0 → 3.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/dist/connect-base.umd.js +4 -4
- package/dist/index.d.mts +78 -2
- package/dist/index.d.ts +78 -2
- package/dist/index.js +48 -1
- package/dist/index.mjs +47 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,38 @@
|
|
|
3
3
|
본 SDK 의 모든 주요 변경사항을 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/) 형식으로 기록합니다.
|
|
4
4
|
버전은 [Semantic Versioning](https://semver.org/lang/ko/) 을 따릅니다.
|
|
5
5
|
|
|
6
|
+
## [3.27.0] - 2026-05-28
|
|
7
|
+
|
|
8
|
+
### Fixed — `signInAsGuestMember` 의 silent session overwrite 차단 + 게스트 식별 필드 노출 (platform-issue 019e6c5d)
|
|
9
|
+
|
|
10
|
+
같은 origin + 같은 publicKey 에서 OAuth 로그인이 활성인 채 다른 페이지/탭/콘솔에서
|
|
11
|
+
`cb.auth.signInAsGuestMember()` 가 호출되면, 게스트 토큰이 메인 토큰 슬롯
|
|
12
|
+
(`cb_auth_tokens_<hash>`) 을 silent 로 덮어써 사용자가 자동 생성된 게스트로 둔갑되던
|
|
13
|
+
회귀(sisun 운영 보고, 2026-05-28). 클라이언트는 둔갑 사실을 결정적으로 식별할
|
|
14
|
+
신호가 없어 닉네임 휴리스틱이나 SDK 내부 storage key 컨벤션에 결합된 비공식 우회에
|
|
15
|
+
의존해야 했다.
|
|
16
|
+
|
|
17
|
+
- **`api/auth.ts` — `signInAsGuestMember(opts?)`** — 활성 비-게스트 세션이 감지되면
|
|
18
|
+
새 `GuestSessionConflictError` 를 던지고 진행을 거부한다. 명시적으로 교체하려면
|
|
19
|
+
`{ allowOverrideExistingSession: true }` 옵션을 전달해야 한다. 활성 게스트 토큰을
|
|
20
|
+
그대로 재사용하는 정상 경로는 그대로 통과한다.
|
|
21
|
+
- **`types/error.ts` — `GuestSessionConflictError`** 신규 export. `code = 'GUEST_SESSION_CONFLICT'`.
|
|
22
|
+
index 에서도 re-export.
|
|
23
|
+
- **`types/auth.ts` — `MemberInfoResponse`** 에 `is_guest?: boolean` + `auth_provider?: string`
|
|
24
|
+
추가. `auth_provider` 값은 `'guest' | 'email' | 'username' | 'oauth_<provider>'` 컨벤션.
|
|
25
|
+
- **백엔드 동반 변경** — `core-server` 의 `GET /v1/public/app-members/me` 응답에 동일
|
|
26
|
+
필드가 같은 의미로 추가된다 (`appmember.Edges.Identities` 우선순위 OAuth > email >
|
|
27
|
+
username > guest).
|
|
28
|
+
- **회귀 가드 테스트** — `test/signin-as-guest-session-guard.test.ts` (5 케이스).
|
|
29
|
+
|
|
30
|
+
#### Behavior change 영향
|
|
31
|
+
|
|
32
|
+
- 가드는 default-on. 활성 OAuth/email 세션 위에서 옵션 없이 `signInAsGuestMember()`
|
|
33
|
+
를 호출하던 코드는 이제 throw 된다. RLS 우회용 cron 처럼 의도적으로 게스트를
|
|
34
|
+
강제 갱신해야 하는 경우 `{ allowOverrideExistingSession: true }` 를 명시할 것.
|
|
35
|
+
- 응답 필드 추가만 있는 변경이므로 `getMe()` 호출자는 영향 없음. `is_guest` 를
|
|
36
|
+
활용하면 SDK 내부 storage key 컨벤션에 결합된 비공식 휴리스틱을 제거할 수 있다.
|
|
37
|
+
|
|
6
38
|
## [3.26.0] - 2026-05-28
|
|
7
39
|
|
|
8
40
|
### Security — LLM provider API key 클라이언트 하드코딩 금지 명시화
|