z-biz-tool-shared 0.1.13 → 0.1.14

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.
@@ -100,6 +100,19 @@ export declare function createCodeVerifier(random: (bytes: number) => string): s
100
100
  * 等于没有保护。ctc 若只支持 plain,本函数要显式报错而不是悄悄降级。
101
101
  */
102
102
  export declare function createCodeChallenge(verifier: string, sha256Base64Url: (text: string) => Promise<string>): Promise<string>;
103
+ /**
104
+ * 挑出配置里缺失/空白的必填项。
105
+ *
106
+ * **这是「配置是否完整」的唯一判据** —— `authorizeWithSso` 和各仓的适配层
107
+ * 都调它。若适配层自己手抄一份清单,两边必然漂移:协议层新加一个必填项,
108
+ * 适配层那份不会跟着改,于是「端口先绑了、然后才发现配置不全」——
109
+ * 端口泄漏,用户第二次登录撞「端口被占用」。
110
+ *
111
+ * @param requireRedirectUri 是否把 `redirectUri` 也算作必填。
112
+ * 适配层在**还没**拼 redirectUri 之前自检 ⇒ 传 false;
113
+ * 协议层最终自检 ⇒ 传 true。
114
+ */
115
+ export declare function missingSsoConfigFields(config: Partial<SsoConfig>, requireRedirectUri?: boolean): string[];
103
116
  /**
104
117
  * 拼授权 URL。
105
118
  *
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/sso/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../src/sso/oauth.ts"],"names":[],"mappings":"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"}
package/dist/sso/oauth.js CHANGED
@@ -75,6 +75,26 @@ export async function createCodeChallenge(verifier, sha256Base64Url) {
75
75
  /* ------------------------------------------------------------------ *
76
76
  * URL 构造
77
77
  * ------------------------------------------------------------------ */
78
+ /**
79
+ * 挑出配置里缺失/空白的必填项。
80
+ *
81
+ * **这是「配置是否完整」的唯一判据** —— `authorizeWithSso` 和各仓的适配层
82
+ * 都调它。若适配层自己手抄一份清单,两边必然漂移:协议层新加一个必填项,
83
+ * 适配层那份不会跟着改,于是「端口先绑了、然后才发现配置不全」——
84
+ * 端口泄漏,用户第二次登录撞「端口被占用」。
85
+ *
86
+ * @param requireRedirectUri 是否把 `redirectUri` 也算作必填。
87
+ * 适配层在**还没**拼 redirectUri 之前自检 ⇒ 传 false;
88
+ * 协议层最终自检 ⇒ 传 true。
89
+ */
90
+ export function missingSsoConfigFields(config, requireRedirectUri = true) {
91
+ const required = ["authorizeUrl", "tokenUrl", "clientId", "scope"].filter((k) => !config[k] || !String(config[k]).trim());
92
+ const missing = [...required];
93
+ if (requireRedirectUri && (!config.redirectUri || !String(config.redirectUri).trim())) {
94
+ missing.push("redirectUri");
95
+ }
96
+ return missing;
97
+ }
78
98
  /**
79
99
  * 拼授权 URL。
80
100
  *
@@ -369,7 +389,7 @@ export async function fetchUserInfo(config, env, accessToken) {
369
389
  */
370
390
  export async function authorizeWithSso(config, env) {
371
391
  // ── 0. 配置自检:错在这里比错在后面省事得多 ──────────────────────
372
- const missing = ["authorizeUrl", "tokenUrl", "clientId", "scope", "redirectUri"].filter((k) => !config[k] || !String(config[k]).trim());
392
+ const missing = missingSsoConfigFields(config, true);
373
393
  if (missing.length > 0) {
374
394
  return {
375
395
  ok: false,
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/sso/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/sso/oauth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * zBiz 家族统一 SSO 的 **Tauri 适配层**。
3
+ *
4
+ * ## 分层(与 deepLink 的三层同构)
5
+ *
6
+ * | 层 | 位置 | 管什么 |
7
+ * |---|------|--------|
8
+ * | 协议流程 | `oauth.ts` | 授权码 + PKCE + state 校验(纯逻辑,依赖全注入) |
9
+ * | **IO 胶水** | **cap-sso(Rust)** | 回环服务器 / 开浏览器 / OS 密钥库 |
10
+ * | **本层** | **`sso/tauriAdapter.ts`** | 把 Tauri 的 invoke 包成 `SsoEnvironment` |
11
+ *
12
+ * ## 为什么适配层在共享层、而不是各仓各写一遍
13
+ *
14
+ * 各仓若各写一遍 Tauri 适配,必然各写错一遍 —— 而 SSO 的坑集中在细节上:
15
+ * PKCE 的 base64url 必须按**字节**算(`atob` 会把中文解成乱码)、
16
+ * 回环端口要内核分配(配置里写死的端口被占用就登录不了)、
17
+ * token 只能进密钥库不能进 localStorage。
18
+ *
19
+ * 这些错一旦漏出去,表现为「用户点了登录、浏览器开了、然后莫名其妙失败」,
20
+ * 而且**很难从报错看出根因**。
21
+ *
22
+ * ## 为什么不直接 import `@tauri-apps/api`
23
+ *
24
+ * 共享层要在 node 单测里跑,也要能被浏览器预览复用。直接 import Tauri 会:
25
+ * - 让 node 单测 import 即抛(`@tauri-apps/api/core` 在 node 下没有 IPC);
26
+ * - 把「一份实现」变成一堆 `if (isTauri)` 分支。
27
+ *
28
+ * 所以这里**依赖靠注入**(与 `protocol/deeplinkReceiver.ts` 同一范式):
29
+ * 调用方把 `invoke` 传进来,我们只负责组装。
30
+ *
31
+ * ## 用法
32
+ *
33
+ * ```ts
34
+ * import { invoke } from "@tauri-apps/api/core";
35
+ * import { createTauriSsoEnvironment, startSsoLogin } from "z-biz-tool-shared/sso/tauri";
36
+ *
37
+ * const port = await invoke<number>("sso_start_callback");
38
+ * const env = createTauriSsoEnvironment(port, invoke);
39
+ * const result = await startSsoLogin(config, env);
40
+ * ```
41
+ */
42
+ import type { SsoSession, SsoResult } from "../sso/types.js";
43
+ import { type SsoEnvironment } from "../sso/oauth.js";
44
+ import { SsoSessionStore, type SecureStore } from "../sso/session.js";
45
+ /**
46
+ * Tauri 的 `invoke` —— 只声明我们用到的那部分签名。
47
+ *
48
+ * 不 import `@tauri-apps/api` 的类型,是为了让本模块在 node 单测里可编译;
49
+ * 调用方的真实 `invoke` 结构兼容这个签名。
50
+ */
51
+ export type TauriInvoke = <T = unknown>(cmd: string, args?: Record<string, unknown>) => Promise<T>;
52
+ /**
53
+ * 服务端下发的 SSO 配置(不含 `redirectUri` —— 那由客户端自己拼)。
54
+ *
55
+ * 字段与 remote 服务端的 `GET /api/sso/config` 响应一一对应。
56
+ */
57
+ export interface SsoServerConfig {
58
+ authorizeUrl: string;
59
+ tokenUrl: string;
60
+ userInfoUrl?: string;
61
+ clientId: string;
62
+ scope: string;
63
+ }
64
+ /**
65
+ * 拉取服务端的 SSO 配置。
66
+ *
67
+ * 返回 `null` 表示服务端没启用 SSO —— **不是错误**,
68
+ * 调用方据此决定「不显示入口」。
69
+ *
70
+ * ## 为什么每一层失败都当「没启用」
71
+ *
72
+ * 地址写错、服务端没起来、返回的不是 JSON、缺字段 —— 四种情况的共同后果都是
73
+ * 「SSO 用不了」。若把它们当成错误抛给调用方,登录页上会出现一个用户看不懂的
74
+ * 异常。SSO 是**可选**入口,它的配置探测不该有能力把登录页弄崩。
75
+ *
76
+ * 缺任何一项配置都当「没启用」—— **半套配置比没有配置更糟**:
77
+ * 用户会看到入口、点了、然后在中途失败。
78
+ */
79
+ export declare function fetchSsoConfig(base: string, fetchImpl?: typeof fetch): Promise<SsoServerConfig | null>;
80
+ /**
81
+ * 造一个跑在 Tauri 里的 `SsoEnvironment`。
82
+ *
83
+ * `port` 必须是**这轮登录已经绑定的**端口 —— 拼出来的 `redirectUri`
84
+ * 要和实际监听的一致,否则浏览器回调会连到没人接的端口。
85
+ */
86
+ export declare function createTauriSsoEnvironment(port: number, invoke: TauriInvoke): SsoEnvironment & {
87
+ redirectUri: string;
88
+ };
89
+ /**
90
+ * 字节串 → base64url(无填充)。
91
+ *
92
+ * **不能用 `btoa` 直接转字符串再替换**:PKCE 的 challenge 必须是对
93
+ * verifier 的**字节**做 SHA-256 后再 base64url,中间任何一次有损编码
94
+ * (比如 UTF-8 往返)都会让 ctc 侧算出不同的 challenge,然后以
95
+ * `invalid_grant` 拒掉 —— 那个报错完全看不出根因。
96
+ */
97
+ export declare function bytesToBase64Url(bytes: Uint8Array): string;
98
+ /**
99
+ * 起一轮登录:绑端口 → 开浏览器 → 等回调 → 换 token → 取身份。
100
+ *
101
+ * 绑端口单独抽出来,是因为 `redirectUri` 必须在跳浏览器**之前**就定下来,
102
+ * 而它的端口又要先于授权页存在 —— 这个顺序只有把「绑端口」提前才成立。
103
+ */
104
+ export declare function startSsoLogin(config: SsoServerConfig, invoke: TauriInvoke): Promise<SsoResult<SsoSession>>;
105
+ /**
106
+ * 把 cap-sso 的密钥库命令包成 `SecureStore`。
107
+ *
108
+ * cap-sso 那层把整个会话当成**一条**密钥库条目(account = `sso.tokens`)存,
109
+ * 而 `SsoSessionStore` 也只用一个 key。所以这里直接透传 ——
110
+ * 不做 key 到 account 的映射,那只会引入「读到一半」的中间态。
111
+ *
112
+ * ## 为什么 delete 不先读再判断
113
+ *
114
+ * 「有没有」这件事已经由后端处理了。这里再读一遍,就是拿一个
115
+ * **可能已经过期的中间结果**去判断 —— 用户刚在另一处登出时,
116
+ * 这次读到的是旧状态,于是「删不掉」。
117
+ */
118
+ export declare function createTauriSecureStore(invoke: TauriInvoke): SecureStore;
119
+ /**
120
+ * 造一个跑在 Tauri 里的 SSO 会话存储。
121
+ *
122
+ * token 进密钥库,展示信息进 localStorage。
123
+ *
124
+ * **别显式传 `localStorage`**:那会在 import 时就求值,而单测跑在 node 里,
125
+ * 那里没有 localStorage —— 模块加载即抛,整个测试文件进不来。
126
+ * `SsoSessionStore` 自己会探测并在缺失时回退成空实现,WebView 里它必然存在。
127
+ */
128
+ export declare function createTauriSsoSessionStore(invoke: TauriInvoke): SsoSessionStore;
129
+ /** 探测密钥库是否可用。不可用时前端不该显示 SSO 入口。 */
130
+ export declare function secureStoreAvailable(invoke: TauriInvoke): Promise<boolean>;
131
+ //# sourceMappingURL=tauriAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tauriAdapter.d.ts","sourceRoot":"","sources":["../../src/sso/tauriAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAa,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,OAAO,EACpC,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA2CjC;AASD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAClB,cAAc,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAyD1C;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAO1D;AAMD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAyBhC;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAavE;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CAE/E;AAED,mCAAmC;AACnC,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhF"}
@@ -0,0 +1,274 @@
1
+ /**
2
+ * zBiz 家族统一 SSO 的 **Tauri 适配层**。
3
+ *
4
+ * ## 分层(与 deepLink 的三层同构)
5
+ *
6
+ * | 层 | 位置 | 管什么 |
7
+ * |---|------|--------|
8
+ * | 协议流程 | `oauth.ts` | 授权码 + PKCE + state 校验(纯逻辑,依赖全注入) |
9
+ * | **IO 胶水** | **cap-sso(Rust)** | 回环服务器 / 开浏览器 / OS 密钥库 |
10
+ * | **本层** | **`sso/tauriAdapter.ts`** | 把 Tauri 的 invoke 包成 `SsoEnvironment` |
11
+ *
12
+ * ## 为什么适配层在共享层、而不是各仓各写一遍
13
+ *
14
+ * 各仓若各写一遍 Tauri 适配,必然各写错一遍 —— 而 SSO 的坑集中在细节上:
15
+ * PKCE 的 base64url 必须按**字节**算(`atob` 会把中文解成乱码)、
16
+ * 回环端口要内核分配(配置里写死的端口被占用就登录不了)、
17
+ * token 只能进密钥库不能进 localStorage。
18
+ *
19
+ * 这些错一旦漏出去,表现为「用户点了登录、浏览器开了、然后莫名其妙失败」,
20
+ * 而且**很难从报错看出根因**。
21
+ *
22
+ * ## 为什么不直接 import `@tauri-apps/api`
23
+ *
24
+ * 共享层要在 node 单测里跑,也要能被浏览器预览复用。直接 import Tauri 会:
25
+ * - 让 node 单测 import 即抛(`@tauri-apps/api/core` 在 node 下没有 IPC);
26
+ * - 把「一份实现」变成一堆 `if (isTauri)` 分支。
27
+ *
28
+ * 所以这里**依赖靠注入**(与 `protocol/deeplinkReceiver.ts` 同一范式):
29
+ * 调用方把 `invoke` 传进来,我们只负责组装。
30
+ *
31
+ * ## 用法
32
+ *
33
+ * ```ts
34
+ * import { invoke } from "@tauri-apps/api/core";
35
+ * import { createTauriSsoEnvironment, startSsoLogin } from "z-biz-tool-shared/sso/tauri";
36
+ *
37
+ * const port = await invoke<number>("sso_start_callback");
38
+ * const env = createTauriSsoEnvironment(port, invoke);
39
+ * const result = await startSsoLogin(config, env);
40
+ * ```
41
+ */
42
+ import { authorizeWithSso, missingSsoConfigFields, } from "../sso/oauth.js";
43
+ import { SsoSessionStore } from "../sso/session.js";
44
+ /* ------------------------------------------------------------------ *
45
+ * 配置拉取
46
+ * ------------------------------------------------------------------ */
47
+ /**
48
+ * 拉取服务端的 SSO 配置。
49
+ *
50
+ * 返回 `null` 表示服务端没启用 SSO —— **不是错误**,
51
+ * 调用方据此决定「不显示入口」。
52
+ *
53
+ * ## 为什么每一层失败都当「没启用」
54
+ *
55
+ * 地址写错、服务端没起来、返回的不是 JSON、缺字段 —— 四种情况的共同后果都是
56
+ * 「SSO 用不了」。若把它们当成错误抛给调用方,登录页上会出现一个用户看不懂的
57
+ * 异常。SSO 是**可选**入口,它的配置探测不该有能力把登录页弄崩。
58
+ *
59
+ * 缺任何一项配置都当「没启用」—— **半套配置比没有配置更糟**:
60
+ * 用户会看到入口、点了、然后在中途失败。
61
+ */
62
+ export async function fetchSsoConfig(base, fetchImpl = fetch) {
63
+ let res;
64
+ try {
65
+ res = await fetchImpl(`${base}/api/sso/config`, {
66
+ method: "GET",
67
+ headers: { accept: "application/json" },
68
+ });
69
+ }
70
+ catch {
71
+ return null;
72
+ }
73
+ if (!res.ok)
74
+ return null;
75
+ let text;
76
+ try {
77
+ text = await res.text();
78
+ }
79
+ catch {
80
+ return null;
81
+ }
82
+ if (!text.trim())
83
+ return null;
84
+ let json;
85
+ try {
86
+ json = JSON.parse(text);
87
+ }
88
+ catch {
89
+ return null;
90
+ }
91
+ if (!json || typeof json !== "object")
92
+ return null;
93
+ const c = json;
94
+ const str = (k) => (typeof c[k] === "string" ? c[k] : "");
95
+ const authorizeUrl = str("authorizeUrl");
96
+ const tokenUrl = str("tokenUrl");
97
+ const clientId = str("clientId");
98
+ const scope = str("scope");
99
+ if (!authorizeUrl || !tokenUrl || !clientId || !scope)
100
+ return null;
101
+ return {
102
+ authorizeUrl,
103
+ tokenUrl,
104
+ userInfoUrl: typeof c.userInfoUrl === "string" ? c.userInfoUrl : undefined,
105
+ clientId,
106
+ scope,
107
+ };
108
+ }
109
+ /* ------------------------------------------------------------------ *
110
+ * 环境适配
111
+ * ------------------------------------------------------------------ */
112
+ /** 回环服务器的端口占位符。`{PORT}` 会被替换成实际监听的端口。 */
113
+ const REDIRECT_URI_TEMPLATE = "http://127.0.0.1:{PORT}/callback";
114
+ /**
115
+ * 造一个跑在 Tauri 里的 `SsoEnvironment`。
116
+ *
117
+ * `port` 必须是**这轮登录已经绑定的**端口 —— 拼出来的 `redirectUri`
118
+ * 要和实际监听的一致,否则浏览器回调会连到没人接的端口。
119
+ */
120
+ export function createTauriSsoEnvironment(port, invoke) {
121
+ const redirectUri = REDIRECT_URI_TEMPLATE.replace("{PORT}", String(port));
122
+ const env = {
123
+ redirectUri,
124
+ startCallbackServer: async () => {
125
+ // 端口已经在「起服务」那一步绑好了,这里只给一个视图:
126
+ // `SsoEnvironment` 的形状要求「起服务」返回句柄,而实际的起服务
127
+ // 必须发生在拿端口之前(顺序是 OAuth 决定的,调不过来)。
128
+ return {
129
+ port,
130
+ waitForCallback: async () => {
131
+ // 这条命令会阻塞到浏览器回调 / 超时 / 取消 —— 前端不 await 它去阻塞 UI。
132
+ return await invoke("sso_wait_callback");
133
+ },
134
+ close: async () => {
135
+ await invoke("sso_cancel_callback");
136
+ },
137
+ };
138
+ },
139
+ openBrowser: async (url) => {
140
+ await invoke("sso_open_browser", { url });
141
+ },
142
+ fetch: async (url, init) => {
143
+ const res = await fetch(url, {
144
+ method: init?.method,
145
+ headers: init?.headers,
146
+ body: init?.body,
147
+ });
148
+ return {
149
+ ok: res.ok,
150
+ status: res.status,
151
+ text: async () => await res.text(),
152
+ };
153
+ },
154
+ random: (bytes) => {
155
+ const buf = new Uint8Array(bytes);
156
+ crypto.getRandomValues(buf);
157
+ // 逐字节转成 latin1 字符串 —— 下游 createCodeVerifier 用
158
+ // `charCodeAt(i) & 0xff` 取回原始字节,往返无损。
159
+ let s = "";
160
+ for (let i = 0; i < buf.length; i++)
161
+ s += String.fromCharCode(buf[i]);
162
+ return s;
163
+ },
164
+ sha256Base64Url: async (text) => {
165
+ const data = new TextEncoder().encode(text);
166
+ const digest = await crypto.subtle.digest("SHA-256", data);
167
+ return bytesToBase64Url(new Uint8Array(digest));
168
+ },
169
+ };
170
+ return env;
171
+ }
172
+ /**
173
+ * 字节串 → base64url(无填充)。
174
+ *
175
+ * **不能用 `btoa` 直接转字符串再替换**:PKCE 的 challenge 必须是对
176
+ * verifier 的**字节**做 SHA-256 后再 base64url,中间任何一次有损编码
177
+ * (比如 UTF-8 往返)都会让 ctc 侧算出不同的 challenge,然后以
178
+ * `invalid_grant` 拒掉 —— 那个报错完全看不出根因。
179
+ */
180
+ export function bytesToBase64Url(bytes) {
181
+ // 注意:这里必须按**字节**取,不能用 `bytes.charCodeAt(i)` ——
182
+ // `charCodeAt` 是 String 的方法,Uint8Array 上不存在,调用即抛 TypeError。
183
+ // (`Uint8Array` 的元素本身就是字节值,直接下标取。)
184
+ let bin = "";
185
+ for (let i = 0; i < bytes.length; i++)
186
+ bin += String.fromCharCode(bytes[i]);
187
+ return btoa(bin).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
188
+ }
189
+ /* ------------------------------------------------------------------ *
190
+ * 主流程
191
+ * ------------------------------------------------------------------ */
192
+ /**
193
+ * 起一轮登录:绑端口 → 开浏览器 → 等回调 → 换 token → 取身份。
194
+ *
195
+ * 绑端口单独抽出来,是因为 `redirectUri` 必须在跳浏览器**之前**就定下来,
196
+ * 而它的端口又要先于授权页存在 —— 这个顺序只有把「绑端口」提前才成立。
197
+ */
198
+ export async function startSsoLogin(config, invoke) {
199
+ // ── 先自检配置,再绑端口 ──────────────────────────────────────────
200
+ //
201
+ // 顺序不能反。`redirectUri` 的端口要先于授权页存在(OAuth 的硬约束),
202
+ // 所以「绑端口」必须发生在流程最前面;但如果**先绑端口再发现配置不全**,
203
+ // 那个端口就泄漏了 —— 用户第二次登录会撞「端口被占用」。
204
+ //
205
+ // 判据用协议层那一份(`missingSsoConfigFields`),不在这儿手抄清单:
206
+ // 手抄的两份必然漂移,协议层加一个必填项就漏了。
207
+ //
208
+ // 这里查的字段不含 `redirectUri` —— 它还没拼(要等端口出来才有)。
209
+ const missing = missingSsoConfigFields(config, false);
210
+ if (missing.length > 0) {
211
+ return {
212
+ ok: false,
213
+ code: "config",
214
+ reason: `SSO 配置不完整,缺少:${missing.join("、")}`,
215
+ };
216
+ }
217
+ // 绑端口、拿实际端口,再去走流程。
218
+ const port = await invoke("sso_start_callback");
219
+ const env = createTauriSsoEnvironment(port, invoke);
220
+ const full = { ...config, redirectUri: env.redirectUri };
221
+ return await authorizeWithSso(full, env);
222
+ }
223
+ /* ------------------------------------------------------------------ *
224
+ * 会话存储桥接
225
+ * ------------------------------------------------------------------ */
226
+ /**
227
+ * 把 cap-sso 的密钥库命令包成 `SecureStore`。
228
+ *
229
+ * cap-sso 那层把整个会话当成**一条**密钥库条目(account = `sso.tokens`)存,
230
+ * 而 `SsoSessionStore` 也只用一个 key。所以这里直接透传 ——
231
+ * 不做 key 到 account 的映射,那只会引入「读到一半」的中间态。
232
+ *
233
+ * ## 为什么 delete 不先读再判断
234
+ *
235
+ * 「有没有」这件事已经由后端处理了。这里再读一遍,就是拿一个
236
+ * **可能已经过期的中间结果**去判断 —— 用户刚在另一处登出时,
237
+ * 这次读到的是旧状态,于是「删不掉」。
238
+ */
239
+ export function createTauriSecureStore(invoke) {
240
+ return {
241
+ get: async () => {
242
+ const raw = await invoke("sso_get_tokens");
243
+ return raw ?? null;
244
+ },
245
+ set: async (_key, value) => {
246
+ await invoke("sso_set_tokens", { value });
247
+ },
248
+ delete: async () => {
249
+ await invoke("sso_clear_tokens");
250
+ },
251
+ };
252
+ }
253
+ /**
254
+ * 造一个跑在 Tauri 里的 SSO 会话存储。
255
+ *
256
+ * token 进密钥库,展示信息进 localStorage。
257
+ *
258
+ * **别显式传 `localStorage`**:那会在 import 时就求值,而单测跑在 node 里,
259
+ * 那里没有 localStorage —— 模块加载即抛,整个测试文件进不来。
260
+ * `SsoSessionStore` 自己会探测并在缺失时回退成空实现,WebView 里它必然存在。
261
+ */
262
+ export function createTauriSsoSessionStore(invoke) {
263
+ return new SsoSessionStore(createTauriSecureStore(invoke));
264
+ }
265
+ /** 探测密钥库是否可用。不可用时前端不该显示 SSO 入口。 */
266
+ export async function secureStoreAvailable(invoke) {
267
+ try {
268
+ return await invoke("sso_secure_store_available");
269
+ }
270
+ catch {
271
+ return false;
272
+ }
273
+ }
274
+ //# sourceMappingURL=tauriAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tauriAdapter.js","sourceRoot":"","sources":["../../src/sso/tauriAdapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "z-biz-tool-shared",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "license": "MIT",
5
5
  "description": "z-biz-tool 核心共享模块(AI/Agent/主题/快捷键/组件)",
6
6
  "type": "module",
@@ -67,6 +67,10 @@
67
67
  "types": "./dist/sso/index.d.ts",
68
68
  "default": "./dist/sso/index.js"
69
69
  },
70
+ "./sso/tauri": {
71
+ "types": "./dist/sso/tauriAdapter.d.ts",
72
+ "default": "./dist/sso/tauriAdapter.js"
73
+ },
70
74
  "./testkit": {
71
75
  "types": "./dist/testkit/index.d.ts",
72
76
  "default": "./dist/testkit/index.js"