@tsingroc/tsingroc-components 3.1.0 → 3.2.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.
|
@@ -104,8 +104,14 @@ interface User {
|
|
|
104
104
|
export interface Auth extends User {
|
|
105
105
|
/** 全局的 Casdoor SDK 对象。*/
|
|
106
106
|
sdk: Sdk;
|
|
107
|
-
/**
|
|
108
|
-
|
|
107
|
+
/**
|
|
108
|
+
* 跳转到登录。
|
|
109
|
+
*
|
|
110
|
+
* 参数 `redirect` 可以填入登录完成后要跳转到的地址。如果省略,那么跳转目标将由
|
|
111
|
+
* {@linkcode AuthCallback} 的 {@linkcode AuthCallbackProps.onRedirect | onRedirect}
|
|
112
|
+
* 属性决定,默认为跳转到主页。
|
|
113
|
+
*/
|
|
114
|
+
login(redirect?: string): void;
|
|
109
115
|
/** 从登录页面返回时应该调用的回调。当登录状态无效时会**抛出异常**。*/
|
|
110
116
|
callback(): Promise<void>;
|
|
111
117
|
/** 在线检查用户是否登录。用户未登录时会**抛出异常**。*/
|
|
@@ -170,7 +176,7 @@ export interface AuthCheckProps {
|
|
|
170
176
|
loading?: ReactNode;
|
|
171
177
|
/**
|
|
172
178
|
* 当用户未登录或登录状态验证失败时的回调。默认会跳转到登录。
|
|
173
|
-
* @default () => auth.login() // auth = useAuth()
|
|
179
|
+
* @default () => auth.login(location.href) // auth = useAuth()
|
|
174
180
|
*/
|
|
175
181
|
onFail?: (err: unknown) => void;
|
|
176
182
|
/**
|
|
@@ -190,10 +196,10 @@ export interface AuthCheckProps {
|
|
|
190
196
|
export declare function AuthCheck(props: AuthCheckProps): ReactNode;
|
|
191
197
|
export interface AuthCallbackProps {
|
|
192
198
|
/**
|
|
193
|
-
*
|
|
194
|
-
* @default () => { location.href = "/"; }
|
|
199
|
+
* 跳转时的回调。传入的 `redirect` 参数就是 {@linkcode Auth.login | login} 函数的参数。
|
|
200
|
+
* @default (redirect) => { location.href = redirect ?? "/"; }
|
|
195
201
|
*/
|
|
196
|
-
onRedirect?: () => void;
|
|
202
|
+
onRedirect?: (redirect?: string) => void;
|
|
197
203
|
/**
|
|
198
204
|
* 发生错误时显示的内容。
|
|
199
205
|
* @default (err) => err.toString()
|
package/dist/components/Auth.js
CHANGED
|
@@ -44,9 +44,11 @@ export function AuthProvider(props) {
|
|
|
44
44
|
});
|
|
45
45
|
const auth = useMemo(() => ({
|
|
46
46
|
sdk: new Sdk(props.sdkConfig),
|
|
47
|
-
login() {
|
|
47
|
+
login(redirect) {
|
|
48
48
|
location.href = this.sdk.getSigninUrl();
|
|
49
|
-
|
|
49
|
+
if (redirect) {
|
|
50
|
+
sessionStorage.setItem("login_redirect", redirect);
|
|
51
|
+
}
|
|
50
52
|
},
|
|
51
53
|
async callback() {
|
|
52
54
|
// sdk 的类型声明有误
|
|
@@ -106,7 +108,7 @@ export function AuthCheck(props) {
|
|
|
106
108
|
return;
|
|
107
109
|
effectDone.current = true;
|
|
108
110
|
if (!auth.userInfo) {
|
|
109
|
-
auth.validate().catch(props.onFail ?? (() => auth.login()));
|
|
111
|
+
auth.validate().catch(props.onFail ?? (() => auth.login(location.href)));
|
|
110
112
|
}
|
|
111
113
|
// 这个副作用只在首次渲染时执行
|
|
112
114
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -137,10 +139,16 @@ export function AuthCallback(props) {
|
|
|
137
139
|
if (effectDone.current)
|
|
138
140
|
return;
|
|
139
141
|
effectDone.current = true;
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
const redirect = sessionStorage.getItem("login_redirect");
|
|
143
|
+
sessionStorage.removeItem("login_redirect");
|
|
144
|
+
auth.callback().then(() => {
|
|
145
|
+
if (props.onRedirect) {
|
|
146
|
+
props.onRedirect(redirect ?? undefined);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
location.href = redirect ?? "/";
|
|
150
|
+
}
|
|
151
|
+
}, setError);
|
|
144
152
|
// 这个副作用只在首次渲染时执行
|
|
145
153
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
146
154
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../src/components/Auth.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EAEb,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,EAAmB,MAAM,YAAY,CAAC;AACxD,OAAO,GAAG,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"Auth.js","sourceRoot":"","sources":["../../src/components/Auth.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsingroc/tsingroc-components",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@eslint/js": "^9.21.0",
|
|
41
|
-
"@rsbuild/core": "^1.3.
|
|
42
|
-
"@rsbuild/plugin-react": "^1.
|
|
41
|
+
"@rsbuild/core": "^1.3.11",
|
|
42
|
+
"@rsbuild/plugin-react": "^1.3.0",
|
|
43
43
|
"@rspress/plugin-preview": "^2.0.0-alpha.0",
|
|
44
44
|
"@types/node": "^22.14.1",
|
|
45
45
|
"@types/react": "^18.3.20",
|