@choiceform/shared-auth 0.1.12 → 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.
- package/README.md +47 -25
- package/dist/components/protected-route.d.ts +1 -1
- package/dist/components/protected-route.d.ts.map +1 -1
- package/dist/components/protected-route.js +9 -3
- package/dist/components/sign-in-page.d.ts +3 -2
- package/dist/components/sign-in-page.d.ts.map +1 -1
- package/dist/components/sign-in-page.js +5 -7
- package/dist/config.d.ts +18 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -2
- package/dist/core/init-auth-sync.d.ts +7 -0
- package/dist/core/init-auth-sync.d.ts.map +1 -0
- package/dist/core/init-auth-sync.js +34 -0
- package/dist/core.d.ts +278 -1730
- package/dist/core.d.ts.map +1 -1
- package/dist/init.d.ts +287 -1732
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +6 -5
- package/dist/lib/auth-client.d.ts +277 -1729
- package/dist/lib/auth-client.d.ts.map +1 -1
- package/dist/store/actions.d.ts +6 -1
- package/dist/store/actions.d.ts.map +1 -1
- package/dist/store/actions.js +20 -5
- package/package.json +3 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-client.d.ts","sourceRoot":"","sources":["../../src/lib/auth-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU
|
|
1
|
+
{"version":3,"file":"auth-client.d.ts","sourceRoot":"","sources":["../../src/lib/auth-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA6Bo0D,CAAC;iBAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAA8hD,CAAC;;eAA2D,CAAC;;;;;gBAA8U,CAAC;mBAA8C,CAAC;iBAAmC,CAAC;iBAAmC,CAAC;YAA+B,CAAC;gBAAuC,CAAC;gBAA2C,CAAC;sBAAwC,CAAC;cAAwC,CAAC;cAA8C,CAAC;eAA+B,CAAC;mBAA0G,CAAC;yBAAuB,CAAC;;eAAyC,CAAC;;;aAA2G,CAAC;YAA+B,CAAC;;;;;;;;;;;;YAA+e,CAAC;aAAgB,CAAC;cAAiB,CAAC;cAAiB,CAAC;;aAA8F,CAAC;oBAAkE,CAAC;cAAgC,CAAC;mBAAmG,CAAC;yBAA2E,CAAC;qBAAwC,CAAC;;;uBAAkF,CAAC;+GAAuL,CAAC;;;;;;EAF5sL"}
|
package/dist/store/actions.d.ts
CHANGED
|
@@ -33,6 +33,9 @@ export declare function createAuthActions(authStore: Observable<AuthState>, toke
|
|
|
33
33
|
/**
|
|
34
34
|
* 处理未授权错误(401 或其他认证失败)
|
|
35
35
|
* 清理所有认证状态和本地存储
|
|
36
|
+
*
|
|
37
|
+
* 注意:如果启用了 skipTokenCleanupOnError,token 不会被清除
|
|
38
|
+
* 这对于开发环境很有用,避免因网络波动等问题频繁登出
|
|
36
39
|
*/
|
|
37
40
|
handleUnauthorized(): void;
|
|
38
41
|
/**
|
|
@@ -53,8 +56,10 @@ export declare function createAuthActions(authStore: Observable<AuthState>, toke
|
|
|
53
56
|
signIn(provider?: string, redirectTo?: string): Promise<void>;
|
|
54
57
|
/**
|
|
55
58
|
* 登出
|
|
59
|
+
*
|
|
60
|
+
* @param redirectTo 登出后的重定向地址(可选),如果不提供则不执行自动跳转
|
|
56
61
|
*/
|
|
57
|
-
signOut(): Promise<void>;
|
|
62
|
+
signOut(redirectTo?: string): Promise<void>;
|
|
58
63
|
/**
|
|
59
64
|
* 更新用户信息
|
|
60
65
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/store/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAgE3C;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,EAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE;IACV,MAAM,EAAE;QACN,MAAM,EAAE,CAAC,OAAO,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KACjF,CAAA;IACD,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CAChC;IAeC;;OAEG;qBACoB,WAAW,GAAG,IAAI,YAAY,OAAO;IAe5D;;;;;;;;;;OAUG;iCACgC,MAAM;IAuDzC
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/store/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAgE3C;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,EAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE;IACV,MAAM,EAAE;QACN,MAAM,EAAE,CAAC,OAAO,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KACjF,CAAA;IACD,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;CAChC;IAeC;;OAEG;qBACoB,WAAW,GAAG,IAAI,YAAY,OAAO;IAe5D;;;;;;;;;;OAUG;iCACgC,MAAM;IAuDzC;;;;;;OAMG;;IAcH;;OAEG;wBACiB,OAAO;IAI3B;;OAEG;oBACa,MAAM,GAAG,IAAI;IAI7B;;;;;;OAMG;sBACoB,MAAM,eAA0B,MAAM;IAqC7D;;;;OAIG;yBACwB,MAAM;IAiCjC;;OAEG;qBACc,WAAW,GAAG,IAAI;IAUnC;;OAEG;eACQ,WAAW,GAAG,IAAI;EAIhC;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA"}
|
package/dist/store/actions.js
CHANGED
|
@@ -58,7 +58,7 @@ function extractUserData(sessionData) {
|
|
|
58
58
|
* 创建认证 actions
|
|
59
59
|
*/
|
|
60
60
|
export function createAuthActions(authStore, tokenStorage, config, authClient) {
|
|
61
|
-
const { baseURL, defaultRedirectAfterLogin
|
|
61
|
+
const { baseURL, defaultRedirectAfterLogin, getSessionEndpoint = "/v1/auth/get-session", callbackURLBuilder, skipTokenCleanupOnError = false, } = config;
|
|
62
62
|
const buildCallbackURL = callbackURLBuilder || ((redirectTo, baseURL) => {
|
|
63
63
|
return `${baseURL}/v1/auth/redirect?to=${encodeURIComponent(redirectTo)}`;
|
|
64
64
|
});
|
|
@@ -145,10 +145,19 @@ export function createAuthActions(authStore, tokenStorage, config, authClient) {
|
|
|
145
145
|
/**
|
|
146
146
|
* 处理未授权错误(401 或其他认证失败)
|
|
147
147
|
* 清理所有认证状态和本地存储
|
|
148
|
+
*
|
|
149
|
+
* 注意:如果启用了 skipTokenCleanupOnError,token 不会被清除
|
|
150
|
+
* 这对于开发环境很有用,避免因网络波动等问题频繁登出
|
|
148
151
|
*/
|
|
149
152
|
handleUnauthorized() {
|
|
150
153
|
authStore.user.set(null);
|
|
151
154
|
authStore.isAuthenticated.set(false);
|
|
155
|
+
authStore.isLoaded.set(true);
|
|
156
|
+
authStore.loading.set(false);
|
|
157
|
+
if (skipTokenCleanupOnError) {
|
|
158
|
+
console.warn("[Auth] Token cleanup skipped (skipTokenCleanupOnError is enabled)");
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
152
161
|
tokenStorage.clear();
|
|
153
162
|
},
|
|
154
163
|
/**
|
|
@@ -186,7 +195,9 @@ export function createAuthActions(authStore, tokenStorage, config, authClient) {
|
|
|
186
195
|
? redirectTo.startsWith("http")
|
|
187
196
|
? redirectTo
|
|
188
197
|
: `${window.location.origin}${redirectTo}`
|
|
189
|
-
:
|
|
198
|
+
: defaultRedirectAfterLogin
|
|
199
|
+
? `${window.location.origin}${defaultRedirectAfterLogin}`
|
|
200
|
+
: `${window.location.origin}/community`;
|
|
190
201
|
const callbackURL = buildCallbackURL(finalRedirectTo, baseURL);
|
|
191
202
|
await authClient.signIn.social({
|
|
192
203
|
provider,
|
|
@@ -202,8 +213,10 @@ export function createAuthActions(authStore, tokenStorage, config, authClient) {
|
|
|
202
213
|
},
|
|
203
214
|
/**
|
|
204
215
|
* 登出
|
|
216
|
+
*
|
|
217
|
+
* @param redirectTo 登出后的重定向地址(可选),如果不提供则不执行自动跳转
|
|
205
218
|
*/
|
|
206
|
-
async signOut() {
|
|
219
|
+
async signOut(redirectTo) {
|
|
207
220
|
// 防止重复调用
|
|
208
221
|
if (authStore.loading.get()) {
|
|
209
222
|
return;
|
|
@@ -216,8 +229,10 @@ export function createAuthActions(authStore, tokenStorage, config, authClient) {
|
|
|
216
229
|
authStore.user.set(null);
|
|
217
230
|
authStore.isAuthenticated.set(false);
|
|
218
231
|
tokenStorage.clear();
|
|
219
|
-
//
|
|
220
|
-
|
|
232
|
+
// 如果提供了重定向地址,则执行跳转
|
|
233
|
+
if (redirectTo) {
|
|
234
|
+
window.location.href = redirectTo;
|
|
235
|
+
}
|
|
221
236
|
}
|
|
222
237
|
catch (error) {
|
|
223
238
|
const message = error instanceof Error ? error.message : "Sign out failed";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@choiceform/shared-auth",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"description": "Shared authentication package for Choiceform projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -45,12 +45,11 @@
|
|
|
45
45
|
"better-auth": "^1.3.8"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@choiceform/design-system": "^1.2.
|
|
48
|
+
"@choiceform/design-system": "^1.2.70",
|
|
49
49
|
"@legendapp/state": "v3.0.0-beta.26",
|
|
50
50
|
"better-auth": "^1.3.8",
|
|
51
51
|
"react": ">=18.0.0",
|
|
52
|
-
"react-dom": ">=18.0.0"
|
|
53
|
-
"react-router": "^7.6.3"
|
|
52
|
+
"react-dom": ">=18.0.0"
|
|
54
53
|
},
|
|
55
54
|
"devDependencies": {
|
|
56
55
|
"@types/react": "18.2.71",
|