@authing/react18-ui-components 4.4.0-alpha.8 → 4.4.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/README.md +33 -0
- package/lib/index.min.css +2 -0
- package/lib/index.min.js +2 -0
- package/lib/index.min.js.LICENSE.txt +195 -0
- package/lib/static/media/loading.3cf0104f.svg +32 -0
- package/package.json +233 -14
- package/types/AuthClientProvider/AuthClientProvider.d.ts +6 -0
- package/types/AuthClientProvider/context.d.ts +6 -0
- package/types/AuthClientProvider/index.d.ts +1 -0
- package/types/Back/index.d.ts +12 -0
- package/types/BindTotp/businessRequest.d.ts +5 -0
- package/types/BindTotp/core/bindSuccess.d.ts +6 -0
- package/types/BindTotp/core/securityCode.d.ts +8 -0
- package/types/BindTotp/index.d.ts +3 -0
- package/types/BindTotp/interface.d.ts +20 -0
- package/types/ChangeLanguage/index.d.ts +9 -0
- package/types/ChangePassword/businessRequest.d.ts +9 -0
- package/types/ChangePassword/core/PasswordNotSafeReset.d.ts +6 -0
- package/types/ChangePassword/core/completePassword.d.ts +2 -0
- package/types/ChangePassword/core/firstLoginReset.d.ts +6 -0
- package/types/ChangePassword/core/rotateReset.d.ts +6 -0
- package/types/ChangePassword/index.d.ts +11 -0
- package/types/CompleteInfo/businessRequest.d.ts +9 -0
- package/types/CompleteInfo/core/completeInfo.d.ts +11 -0
- package/types/CompleteInfo/index.d.ts +11 -0
- package/types/CompleteInfo/interface.d.ts +100 -0
- package/types/CompleteInfo/utils.d.ts +18 -0
- package/types/CopyAbleText/index.d.ts +5 -0
- package/types/DownloadAuthenticator/index.d.ts +3 -0
- package/types/DownloadAuthenticator/interface.d.ts +12 -0
- package/types/Error/index.d.ts +6 -0
- package/types/Error/interface.d.ts +8 -0
- package/types/ForgetPassword/InputPassword/index.d.ts +3 -0
- package/types/ForgetPassword/core/inputIdentify.d.ts +7 -0
- package/types/ForgetPassword/core/resetPassword.d.ts +16 -0
- package/types/ForgetPassword/index.d.ts +2 -0
- package/types/ForgetPassword/interface.d.ts +19 -0
- package/types/Guard/Guard.d.ts +10 -0
- package/types/Guard/GuardModule/stateMachine.d.ts +38 -0
- package/types/Guard/authClient.d.ts +14 -0
- package/types/Guard/config.d.ts +17 -0
- package/types/Guard/core/hooks/useAgreements.d.ts +14 -0
- package/types/Guard/core/hooks/useGuardView.d.ts +7 -0
- package/types/Guard/core/hooks/useMultipleAccounts.d.ts +324 -0
- package/types/Guard/core/index.d.ts +7 -0
- package/types/Guard/core/renderContext.d.ts +8 -0
- package/types/Guard/core/renderModule.d.ts +11 -0
- package/types/Guard/core/useAppendConfig.d.ts +4 -0
- package/types/Guard/core/usePlugin.d.ts +3 -0
- package/types/Guard/event.d.ts +69 -0
- package/types/Guard/index.d.ts +4 -0
- package/types/Guard/module.d.ts +35 -0
- package/types/Guard/sso.d.ts +19 -0
- package/types/GuardButton/GuardButton.d.ts +6 -0
- package/types/GuardButton/index.d.ts +1 -0
- package/types/GuardFace/index.d.ts +16 -0
- package/types/GuardSelect/index.d.ts +29 -0
- package/types/IconFont/iconfont.d.ts +1 -0
- package/types/IconFont/index.d.ts +8 -0
- package/types/IconFont/useGuardIconfont.d.ts +1 -0
- package/types/IdentityBinding/IdentityBinding.d.ts +5 -0
- package/types/IdentityBinding/businessRequest.d.ts +36 -0
- package/types/IdentityBinding/index.d.ts +2 -0
- package/types/IdentityBinding/interface.d.ts +27 -0
- package/types/IdentityBindingAsk/IdentityBindingAsk.d.ts +3 -0
- package/types/IdentityBindingAsk/index.d.ts +2 -0
- package/types/IdentityBindingAsk/interface.d.ts +21 -0
- package/types/ImagePro/index.d.ts +15 -0
- package/types/InputNumber/index.d.ts +5 -0
- package/types/InputPassword/index.d.ts +1 -0
- package/types/LazyloadImage/index.d.ts +12 -0
- package/types/Login/codemap.d.ts +2 -0
- package/types/Login/core/withAD.d.ts +20 -0
- package/types/Login/core/withAppQrcode.d.ts +8 -0
- package/types/Login/core/withAuthingOtpPush/BeforeLogin.d.ts +17 -0
- package/types/Login/core/withAuthingOtpPush/HowBindClient.d.ts +1 -0
- package/types/Login/core/withAuthingOtpPush/HowGetAppLoginUrl.d.ts +1 -0
- package/types/Login/core/withAuthingOtpPush/HowUsePushLogin.d.ts +1 -0
- package/types/Login/core/withAuthingOtpPush/PendingLogin.d.ts +6 -0
- package/types/Login/core/withAuthingOtpPush/PushLoginGuideModal.d.ts +2 -0
- package/types/Login/core/withAuthingOtpPush/PushLoginGuideSelector.d.ts +8 -0
- package/types/Login/core/withAuthingOtpPush/index.d.ts +2 -0
- package/types/Login/core/withAuthingOtpPush/types.d.ts +28 -0
- package/types/Login/core/withLDAP.d.ts +21 -0
- package/types/Login/core/withPassword/FormItemAccount.d.ts +6 -0
- package/types/Login/core/withPassword/GraphicVerifyCode.d.ts +7 -0
- package/types/Login/core/withPassword/InputAccount.d.ts +7 -0
- package/types/Login/core/withPassword/index.d.ts +27 -0
- package/types/Login/core/withVerifyCode/FormItemIdentify.d.ts +11 -0
- package/types/Login/core/withVerifyCode/InputInternationPhone.d.ts +7 -0
- package/types/Login/core/withVerifyCode/VirtualDropdown.d.ts +12 -0
- package/types/Login/core/withVerifyCode/index.d.ts +3 -0
- package/types/Login/core/withVerifyCode/inputIdentify.d.ts +7 -0
- package/types/Login/core/withWechatMiniQrcode.d.ts +10 -0
- package/types/Login/core/withWechatmpQrcode.d.ts +13 -0
- package/types/Login/hooks/useLoginMultiple.d.ts +65 -0
- package/types/Login/index.d.ts +5 -0
- package/types/Login/interface.d.ts +41 -0
- package/types/Login/multipleAccounts/index.d.ts +22 -0
- package/types/Login/multipleAccounts/panel.d.ts +46 -0
- package/types/Login/resetAccountName/businessRequest.d.ts +6 -0
- package/types/Login/resetAccountName/index.d.ts +3 -0
- package/types/Login/socialLogin/IdpButton/index.d.ts +1 -0
- package/types/Login/socialLogin/index.d.ts +18 -0
- package/types/Login/socialLogin/postMessage.d.ts +7 -0
- package/types/MFA/VerifyCodeInput/VerifyCodeFormItem.d.ts +8 -0
- package/types/MFA/VerifyCodeInput/index.d.ts +14 -0
- package/types/MFA/businessRequest.d.ts +46 -0
- package/types/MFA/codemap.d.ts +2 -0
- package/types/MFA/core/email.d.ts +23 -0
- package/types/MFA/core/face.d.ts +1 -0
- package/types/MFA/core/face_deps.d.ts +11 -0
- package/types/MFA/core/sms.d.ts +28 -0
- package/types/MFA/core/totp.d.ts +20 -0
- package/types/MFA/index.d.ts +9 -0
- package/types/MFA/interface.d.ts +43 -0
- package/types/MFA/mfaMethods/index.d.ts +8 -0
- package/types/NeedHelpView/core/describeQuestions.d.ts +7 -0
- package/types/NeedHelpView/index.d.ts +1 -0
- package/types/NewSubmitSuccess/index.d.ts +2 -0
- package/types/NewSubmitSuccess/interface.d.ts +19 -0
- package/types/Qrcode/UiQrCode.d.ts +51 -0
- package/types/Qrcode/WorkQrCode.d.ts +41 -0
- package/types/Qrcode/hooks/useImage.d.ts +4 -0
- package/types/Qrcode/hooks/usePostQrCode.d.ts +72 -0
- package/types/Qrcode/hooks/usePreQrCode.d.ts +31 -0
- package/types/Qrcode/hooks/useStatus.d.ts +8 -0
- package/types/Qrcode/index.d.ts +7 -0
- package/types/RecoveryCode/businessRequest.d.ts +5 -0
- package/types/RecoveryCode/core/saveCode.d.ts +5 -0
- package/types/RecoveryCode/core/useCode.d.ts +7 -0
- package/types/RecoveryCode/index.d.ts +5 -0
- package/types/RecoveryCode/interface.d.ts +8 -0
- package/types/Register/codemap.d.ts +2 -0
- package/types/Register/components/Agreements/index.d.ts +11 -0
- package/types/Register/core/WithCode.d.ts +17 -0
- package/types/Register/core/WithEmail.d.ts +13 -0
- package/types/Register/core/WithEmailCode.d.ts +11 -0
- package/types/Register/core/WithPhone.d.ts +10 -0
- package/types/Register/index.d.ts +2 -0
- package/types/Register/interface.d.ts +25 -0
- package/types/Register/utils.d.ts +1 -0
- package/types/SelectAccount/index.d.ts +2 -0
- package/types/SelectAccount2Login/index.d.ts +2 -0
- package/types/SelfUnlock/core/selfUnlock.d.ts +8 -0
- package/types/SelfUnlock/index.d.ts +2 -0
- package/types/SelfUnlock/interface.d.ts +15 -0
- package/types/SendCode/SendCodeBtn.d.ts +10 -0
- package/types/SendCode/SendCodeByEmail.d.ts +13 -0
- package/types/SendCode/SendCodeByPhone.d.ts +15 -0
- package/types/SendCode/index.d.ts +9 -0
- package/types/ShieldSpin/index.d.ts +6 -0
- package/types/SingleComponent/SingleComponent.d.ts +2 -0
- package/types/SingleComponent/index.d.ts +3 -0
- package/types/SubmitButton/index.d.ts +10 -0
- package/types/SubmitSuccess/index.d.ts +2 -0
- package/types/SubmitSuccess/interface.d.ts +17 -0
- package/types/TenantPortalSelect/index.d.ts +2 -0
- package/types/TenantPortalSelect/interface.d.ts +33 -0
- package/types/Type/application.d.ts +337 -0
- package/types/Type/index.d.ts +87 -0
- package/types/UploadImage/index.d.ts +5 -0
- package/types/ValidatorRules/PasswordFormItem.d.ts +6 -0
- package/types/ValidatorRules/ValidatorFormItem.d.ts +8 -0
- package/types/ValidatorRules/index.d.ts +32 -0
- package/types/ValidatorRules/useCheckRepeat.d.ts +1 -0
- package/types/VerifyCodeInput/index.d.ts +10 -0
- package/types/_utils/GuardErrorCode.d.ts +12 -0
- package/types/_utils/appendConfig.d.ts +4 -0
- package/types/_utils/clipboard.d.ts +1 -0
- package/types/_utils/config/index.d.ts +110 -0
- package/types/_utils/context.d.ts +160 -0
- package/types/_utils/corsVerification.d.ts +1 -0
- package/types/_utils/countryList.d.ts +7 -0
- package/types/_utils/errorFace.d.ts +12 -0
- package/types/_utils/facePlugin/index.d.ts +4 -0
- package/types/_utils/facePlugin/interface.d.ts +5 -0
- package/types/_utils/flowHandleStorage.d.ts +4 -0
- package/types/_utils/getCaptchaUrl.d.ts +1 -0
- package/types/_utils/guardDocument.d.ts +3 -0
- package/types/_utils/guardHttp.d.ts +28 -0
- package/types/_utils/hooks/index.d.ts +43 -0
- package/types/_utils/http.d.ts +33 -0
- package/types/_utils/index.d.ts +99 -0
- package/types/_utils/initAppId.d.ts +7 -0
- package/types/_utils/locales/en-us/index.d.ts +4 -0
- package/types/_utils/locales/index.d.ts +8 -0
- package/types/_utils/locales/ja-jp/index.d.ts +4 -0
- package/types/_utils/locales/zh-cn/index.d.ts +4 -0
- package/types/_utils/locales/zh-tw/index.d.ts +4 -0
- package/types/_utils/logger/index.d.ts +15 -0
- package/types/_utils/logger/interface.d.ts +5 -0
- package/types/_utils/popupCenter.d.ts +9 -0
- package/types/_utils/responseManagement/index.d.ts +3 -0
- package/types/_utils/responseManagement/interface.d.ts +26 -0
- package/types/_utils/tenant.d.ts +19 -0
- package/types/_utils/useErrorText.d.ts +5 -0
- package/types/index.d.ts +7 -0
- package/types/version/index.d.ts +2 -0
- package/types/version/version.d.ts +2 -0
- package/dist/esm/guard.min.css +0 -2
- package/dist/esm/guard.min.js +0 -2
- package/dist/esm/guard.min.js.LICENSE.txt +0 -188
- package/dist/typings/index.d.ts +0 -2
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { AuthenticationClient, CommonMessage, User } from 'authing-js-sdk';
|
|
2
|
+
import { IG2Config, IG2Events, IG2FCProps } from '../Type';
|
|
3
|
+
export interface CompleteInfoConfig extends IG2Config {
|
|
4
|
+
}
|
|
5
|
+
export declare const getDefaultCompleteInfoConfig: () => CompleteInfoConfig;
|
|
6
|
+
export interface CompleteInfoEvents extends IG2Events {
|
|
7
|
+
onRegisterInfoCompleted?: (user: User, udfs: {
|
|
8
|
+
key: any;
|
|
9
|
+
value: any;
|
|
10
|
+
}[], authClient: AuthenticationClient) => void;
|
|
11
|
+
onRegisterInfoCompletedError?: (error: CommonMessage, udfs: {
|
|
12
|
+
key: any;
|
|
13
|
+
value: any;
|
|
14
|
+
}[], authClient: AuthenticationClient) => void;
|
|
15
|
+
}
|
|
16
|
+
export interface GuardCompleteInfoProps extends IG2FCProps, CompleteInfoEvents {
|
|
17
|
+
config: Partial<CompleteInfoConfig>;
|
|
18
|
+
}
|
|
19
|
+
export interface GuardCompleteInfoViewProps extends GuardCompleteInfoProps {
|
|
20
|
+
config: CompleteInfoConfig;
|
|
21
|
+
initData: any;
|
|
22
|
+
onLogin?: any;
|
|
23
|
+
}
|
|
24
|
+
export type ExtendsFieldType = 'user' | 'internal';
|
|
25
|
+
export interface ExtendsField {
|
|
26
|
+
type: ExtendsFieldType;
|
|
27
|
+
name: string;
|
|
28
|
+
label: string;
|
|
29
|
+
inputType: string;
|
|
30
|
+
required: boolean;
|
|
31
|
+
validateRules: any[];
|
|
32
|
+
}
|
|
33
|
+
export declare enum FormValidateRule {
|
|
34
|
+
NONE = "none",
|
|
35
|
+
EMAIL = "email",
|
|
36
|
+
PHONE = "phone",
|
|
37
|
+
IS_NUMBER = "isNumber",
|
|
38
|
+
REG_EXP = "regExp"
|
|
39
|
+
}
|
|
40
|
+
export interface CompleteInfoRule {
|
|
41
|
+
type: FormValidateRule;
|
|
42
|
+
content: string;
|
|
43
|
+
errorMessage?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface CompleteInfoSelectOption {
|
|
46
|
+
value: string;
|
|
47
|
+
label: string;
|
|
48
|
+
}
|
|
49
|
+
export interface CompleteInfoMetaData {
|
|
50
|
+
type: CompleteInfoBaseControls | CompleteInfoExtendsControls;
|
|
51
|
+
label: string;
|
|
52
|
+
name: string;
|
|
53
|
+
required: boolean;
|
|
54
|
+
validateRules: CompleteInfoRule[];
|
|
55
|
+
options?: CompleteInfoSelectOption[];
|
|
56
|
+
}
|
|
57
|
+
export declare enum CompleteInfoBaseControls {
|
|
58
|
+
USERNAME = "username",
|
|
59
|
+
PHONE = "phone",
|
|
60
|
+
EMAIL = "email"
|
|
61
|
+
}
|
|
62
|
+
export declare enum CompleteInfoExtendsControls {
|
|
63
|
+
IMAGE = "image",
|
|
64
|
+
NUMBER = "number",
|
|
65
|
+
DATE = "date",
|
|
66
|
+
DATE_TIME = "datetime",
|
|
67
|
+
SELECT = "select",
|
|
68
|
+
DROPDOWN = "dropdown",
|
|
69
|
+
BOOLEAN = "boolean",
|
|
70
|
+
STRING = "string",
|
|
71
|
+
TEXT = "text",
|
|
72
|
+
GENDER = "gender",
|
|
73
|
+
COUNTRY = "country"
|
|
74
|
+
}
|
|
75
|
+
export interface CompleteInfoInitData {
|
|
76
|
+
skip: boolean;
|
|
77
|
+
metaData: CompleteInfoMetaData[];
|
|
78
|
+
}
|
|
79
|
+
export interface RegisterCompleteInfoInitData {
|
|
80
|
+
content: any;
|
|
81
|
+
businessRequestName: 'registerByEmail' | 'registerByPhoneCode' | 'registerByEmailCode';
|
|
82
|
+
onRegisterFailed: Function;
|
|
83
|
+
onRegisterSuccess: Function;
|
|
84
|
+
}
|
|
85
|
+
export interface RegisterCompletePasswordInitData extends RegisterCompleteInfoInitData {
|
|
86
|
+
isChangeComplete: boolean;
|
|
87
|
+
}
|
|
88
|
+
export interface CompleteInfoRequest {
|
|
89
|
+
fieldValues: {
|
|
90
|
+
name: string;
|
|
91
|
+
value: string;
|
|
92
|
+
code?: string;
|
|
93
|
+
}[];
|
|
94
|
+
}
|
|
95
|
+
export declare enum OmitCompleteInfo {
|
|
96
|
+
'registerByEmail' = "email",
|
|
97
|
+
'registerByPhoneCode' = "phone",
|
|
98
|
+
'registerByEmailCode' = "email",
|
|
99
|
+
'phone-password' = "phone"
|
|
100
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { User } from 'authing-js-sdk';
|
|
2
|
+
import { CompleteInfoMetaData, CompleteInfoRequest, ExtendsField } from '../CompleteInfo/interface';
|
|
3
|
+
import { ApplicationConfig } from '../Type/application';
|
|
4
|
+
export declare const completeFieldsFilter: (user: User, field: ExtendsField) => boolean;
|
|
5
|
+
export declare const extendsFieldsToMetaData: (extendsFields: import("../Type/application").ExtendsField[] | undefined, selectOptions: {
|
|
6
|
+
key: string;
|
|
7
|
+
options: {
|
|
8
|
+
value: string;
|
|
9
|
+
label: string;
|
|
10
|
+
}[];
|
|
11
|
+
}[]) => CompleteInfoMetaData[];
|
|
12
|
+
export declare const fieldValuesToRegisterProfile: (extendsFields: ApplicationConfig['extendsFields'], fieldValues?: CompleteInfoRequest['fieldValues']) => {
|
|
13
|
+
registerProfile: Record<string, any>;
|
|
14
|
+
udf: {
|
|
15
|
+
key: string;
|
|
16
|
+
value: string;
|
|
17
|
+
}[];
|
|
18
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IG2Config, IG2Events, IG2FCProps } from '../Type';
|
|
2
|
+
export interface DownloadATConfig extends IG2Config {
|
|
3
|
+
}
|
|
4
|
+
export declare const getDefaultDownloadAuthenticatorConfig: () => DownloadATConfig;
|
|
5
|
+
export interface DownloadATEvents extends IG2Events {
|
|
6
|
+
}
|
|
7
|
+
export interface GuardDownloadATProps extends IG2FCProps, DownloadATEvents {
|
|
8
|
+
config: Partial<DownloadATConfig>;
|
|
9
|
+
}
|
|
10
|
+
export interface GuardDownloadATViewProps extends GuardDownloadATProps {
|
|
11
|
+
config: DownloadATConfig;
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { InputProps } from 'antd/lib/input';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { VerifyLoginMethods } from '../../Type/application';
|
|
4
|
+
export interface InputIdentifyProps extends InputProps {
|
|
5
|
+
methods: VerifyLoginMethods[];
|
|
6
|
+
}
|
|
7
|
+
export declare const InputIdentify: React.FC<InputIdentifyProps>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare enum InputMethodMap {
|
|
3
|
+
email = "email-code",
|
|
4
|
+
phone = "phone-code"
|
|
5
|
+
}
|
|
6
|
+
interface ResetPasswordProps {
|
|
7
|
+
publicConfig: any;
|
|
8
|
+
setControlShow: any;
|
|
9
|
+
setPolicyStrength: any;
|
|
10
|
+
setCustomPasswordStrength: any;
|
|
11
|
+
setPhoneOrEmailText: any;
|
|
12
|
+
setResetToken: React.Dispatch<React.SetStateAction<string>>;
|
|
13
|
+
setUserId: React.Dispatch<React.SetStateAction<string>>;
|
|
14
|
+
}
|
|
15
|
+
export declare const ResetPassword: (props: ResetPasswordProps) => JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AuthenticationClient, CommonMessage, SceneType } from 'authing-js-sdk';
|
|
2
|
+
import { EmailScene, IG2Config, IG2Events, IG2FCProps, IG2FCViewProps } from '../Type';
|
|
3
|
+
export interface ForgetPasswordEvents extends IG2Events {
|
|
4
|
+
onEmailSend?: (authClient: AuthenticationClient, sence?: EmailScene) => void;
|
|
5
|
+
onEmailSendError?: (error?: CommonMessage, authClient?: AuthenticationClient, sence?: EmailScene) => void;
|
|
6
|
+
onPhoneSend?: (authClient: AuthenticationClient, sence?: SceneType) => void;
|
|
7
|
+
onPhoneSendError?: (error: CommonMessage, authClient: AuthenticationClient, sence?: SceneType) => void;
|
|
8
|
+
onPwdReset?: (authClient: AuthenticationClient) => void;
|
|
9
|
+
onPwdResetError?: (error: CommonMessage, authClient: AuthenticationClient) => void;
|
|
10
|
+
}
|
|
11
|
+
export interface ForgetPasswordConfig extends IG2Config {
|
|
12
|
+
goBack?: null | (() => void);
|
|
13
|
+
}
|
|
14
|
+
export interface ForgetPasswordProps extends IG2FCProps, ForgetPasswordEvents {
|
|
15
|
+
config: Partial<IG2Config>;
|
|
16
|
+
}
|
|
17
|
+
export interface ForgetPasswordViewProps extends ForgetPasswordProps, IG2FCViewProps {
|
|
18
|
+
config: IG2Config;
|
|
19
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { GuardEvents } from './event';
|
|
2
|
+
import { GuardAppendConfig, IG2FCProps } from '../Type';
|
|
3
|
+
import { GuardLocalConfig } from './config';
|
|
4
|
+
import 'moment/locale/zh-cn';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
export interface GuardProps extends GuardEvents, IG2FCProps {
|
|
7
|
+
config?: Partial<GuardLocalConfig>;
|
|
8
|
+
appendConfig?: GuardAppendConfig;
|
|
9
|
+
}
|
|
10
|
+
export declare const Guard: React.MemoExoticComponent<(props: GuardProps) => JSX.Element>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { GuardLocalConfig } from '../config';
|
|
2
|
+
import { GuardModuleType } from '../module';
|
|
3
|
+
export interface ModuleState {
|
|
4
|
+
moduleName: GuardModuleType;
|
|
5
|
+
initData?: any;
|
|
6
|
+
}
|
|
7
|
+
export declare enum ActionType {
|
|
8
|
+
ChangeModule = "ChangeModule",
|
|
9
|
+
Back = "Back",
|
|
10
|
+
Init = "Init"
|
|
11
|
+
}
|
|
12
|
+
export interface StateMachineLog {
|
|
13
|
+
action: ActionType;
|
|
14
|
+
date: number;
|
|
15
|
+
dataSource: ModuleState;
|
|
16
|
+
}
|
|
17
|
+
export type ChangeModuleEvent = (nextModule: GuardModuleType, initData?: any) => void;
|
|
18
|
+
export declare class GuardStateMachine {
|
|
19
|
+
private order;
|
|
20
|
+
private config;
|
|
21
|
+
private moduleStateHistory;
|
|
22
|
+
private changeModuleEvent;
|
|
23
|
+
private stateMachineLog;
|
|
24
|
+
constructor(changeModuleEvent: ChangeModuleEvent, initData: ModuleState);
|
|
25
|
+
uninstallPopstate: () => void;
|
|
26
|
+
globalWindow: () => Window | undefined;
|
|
27
|
+
next: (nextModule: GuardModuleType, initData: any) => void;
|
|
28
|
+
back: (initData?: any) => void;
|
|
29
|
+
end: () => void;
|
|
30
|
+
historyPush: (data: ModuleState, actionType?: ActionType) => void;
|
|
31
|
+
historyBack: (data: ModuleState) => void;
|
|
32
|
+
setConfig: (config: Partial<GuardLocalConfig>) => void;
|
|
33
|
+
isUseHistoryHijack: () => boolean;
|
|
34
|
+
onPopstate: () => void;
|
|
35
|
+
}
|
|
36
|
+
export declare const initGuardStateMachine: (changeMouleEvent: ChangeModuleEvent, initData: ModuleState) => GuardStateMachine;
|
|
37
|
+
export declare const getGuardStateMachine: () => GuardStateMachine;
|
|
38
|
+
export declare const useGuardStateMachine: () => GuardStateMachine;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AuthenticationClient } from 'authing-js-sdk';
|
|
2
|
+
import { GuardLocalConfig } from './config';
|
|
3
|
+
declare let authClient: AuthenticationClient;
|
|
4
|
+
export declare const initGuardAuthClient: (config: GuardLocalConfig, appId: string, tenantId?: string) => AuthenticationClient;
|
|
5
|
+
export declare const useInitGuardAuthClient: (props: {
|
|
6
|
+
config?: GuardLocalConfig | undefined;
|
|
7
|
+
appId?: string | undefined;
|
|
8
|
+
authClient?: AuthenticationClient | undefined;
|
|
9
|
+
setError?: any;
|
|
10
|
+
tenantId?: string | undefined;
|
|
11
|
+
}) => AuthenticationClient | undefined;
|
|
12
|
+
export declare const getGuardAuthClient: () => AuthenticationClient;
|
|
13
|
+
export declare const useGuardAuthClient: () => AuthenticationClient;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { GuardModuleType } from '.';
|
|
3
|
+
import { ForgetPasswordConfig } from '../ForgetPassword/interface';
|
|
4
|
+
import { LoginConfig } from '../Login/interface';
|
|
5
|
+
import { RegisterConfig } from '../Register/interface';
|
|
6
|
+
export interface GuardLocalConfig extends RegisterConfig, LoginConfig, ForgetPasswordConfig {
|
|
7
|
+
isSSO?: boolean;
|
|
8
|
+
defaultScenes?: GuardModuleType;
|
|
9
|
+
defaultInitData?: any;
|
|
10
|
+
showLoading?: boolean;
|
|
11
|
+
loadingComponent?: ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* @description 是否调用 eventsMapping 中的事件
|
|
14
|
+
*/
|
|
15
|
+
openEventsMapping?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const getDefaultGuardLocalConfig: () => GuardLocalConfig;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Agreement } from '../../../Type';
|
|
2
|
+
interface Options {
|
|
3
|
+
agreements: Agreement[];
|
|
4
|
+
checkedAgreements: (string | number)[];
|
|
5
|
+
checkAllAgreements: () => void;
|
|
6
|
+
unCheckAllAgreements: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function useAgreements(options: Options): {
|
|
9
|
+
agreements: Agreement[];
|
|
10
|
+
checkedAgreements: (string | number)[];
|
|
11
|
+
checkAllAgreements: () => void;
|
|
12
|
+
unCheckAllAgreements: () => void;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 整体的思路:
|
|
3
|
+
* 在所有登录方式中,当进行登录时保存登录方式(FE侧自定义)
|
|
4
|
+
* 之后在登录成功(onLogin)中,触发store的方法保存用户信息以及对应的登录方式进入localStorage。
|
|
5
|
+
* 当用户再次打开页面时,拿出数据进行对比。(主要对比 LoginWay ),TODO: 这里的代码主要显得乱的原因是因为枚举的不正当使用。(主要要和Server端进行互相映射,后续维护时可优化)
|
|
6
|
+
*
|
|
7
|
+
* 核心思路:登录成功时,保存的FE侧自定义 LoginWay
|
|
8
|
+
* 再次打开页面时,初始化时先根据 FE 自定义的 LoginWay 跳转到不同的 tab 下(way)下使用 account 进行回填。TODO: 这里也可优化,应该在登录成功时候就进行 LoginWay 的格式化,而非转来转去。(但是这样无法直观的体现是哪种方式进行登录)
|
|
9
|
+
*/
|
|
10
|
+
import { SelectOptions } from '../../../Login/multipleAccounts/panel';
|
|
11
|
+
export declare const QR_CODE_WAY: LoginWay[];
|
|
12
|
+
/**
|
|
13
|
+
* 登录时所有支持的登录列表(前端定义列表)
|
|
14
|
+
* 这里稍微有点乱 因为Login中的登录方式和这里的不匹配,暂时放在了一起
|
|
15
|
+
*/
|
|
16
|
+
export type LoginWay = 'email' | 'phone' | 'password' | 'phone-code' | 'email-code' | 'social' | 'wechat-miniprogram-qrcode' | 'wechatmp-qrcode' | 'app-qrcode' | 'ad' | 'ldap' | 'ldap-password' | 'ldap-email' | 'ldap-phone' | 'authing-otp-push';
|
|
17
|
+
/**
|
|
18
|
+
* when: 多账号页面跳转进入登录页面
|
|
19
|
+
* 携带的回填数据信息
|
|
20
|
+
*/
|
|
21
|
+
export interface BackFillMultipleState extends Omit<User, 'id' | 'name' | 'nickname' | 'username' | 'phone' | 'email' | 'photo' | '_updateTime'> {
|
|
22
|
+
/**
|
|
23
|
+
* 回填的账号名称 邮箱/用户名/手机
|
|
24
|
+
*/
|
|
25
|
+
account: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Store instance
|
|
29
|
+
*/
|
|
30
|
+
export type StoreInstance = ReturnType<MultipleAccount['getStore']>;
|
|
31
|
+
/**
|
|
32
|
+
* 当前 userId 对应的类型
|
|
33
|
+
*/
|
|
34
|
+
export interface CurrentStore {
|
|
35
|
+
[id: string]: User;
|
|
36
|
+
}
|
|
37
|
+
export interface User {
|
|
38
|
+
/**
|
|
39
|
+
* userId
|
|
40
|
+
*/
|
|
41
|
+
id: string;
|
|
42
|
+
/**
|
|
43
|
+
* Tab 栏状态
|
|
44
|
+
*/
|
|
45
|
+
tab: 'input' | 'qrcode';
|
|
46
|
+
/**
|
|
47
|
+
* 登录方式
|
|
48
|
+
*/
|
|
49
|
+
way: LoginWay;
|
|
50
|
+
/**
|
|
51
|
+
* 姓名
|
|
52
|
+
*/
|
|
53
|
+
name?: string | null;
|
|
54
|
+
/**
|
|
55
|
+
* 昵称
|
|
56
|
+
*/
|
|
57
|
+
nickname?: string | null;
|
|
58
|
+
/**
|
|
59
|
+
* 用户名
|
|
60
|
+
*/
|
|
61
|
+
username?: string | null;
|
|
62
|
+
/**
|
|
63
|
+
* 手机号
|
|
64
|
+
*/
|
|
65
|
+
phone?: string | null;
|
|
66
|
+
/**
|
|
67
|
+
* 邮箱
|
|
68
|
+
*/
|
|
69
|
+
email?: string | null;
|
|
70
|
+
/**
|
|
71
|
+
* 头像
|
|
72
|
+
*/
|
|
73
|
+
photo?: string | null;
|
|
74
|
+
/**
|
|
75
|
+
* qrCodeId 对应的ID
|
|
76
|
+
*/
|
|
77
|
+
qrCodeId?: string;
|
|
78
|
+
/**
|
|
79
|
+
* 国际化短信区号
|
|
80
|
+
*/
|
|
81
|
+
phoneCountryCode?: string;
|
|
82
|
+
/**
|
|
83
|
+
* 国际化短信选择框回填
|
|
84
|
+
*/
|
|
85
|
+
areaCode?: string;
|
|
86
|
+
/**
|
|
87
|
+
* 登录时间
|
|
88
|
+
*/
|
|
89
|
+
_updateTime?: string;
|
|
90
|
+
}
|
|
91
|
+
declare class MultipleAccount {
|
|
92
|
+
/**
|
|
93
|
+
* 原始的登录账号
|
|
94
|
+
*/
|
|
95
|
+
private originAccount;
|
|
96
|
+
private originWay;
|
|
97
|
+
/**
|
|
98
|
+
* 原始的 localStore 值
|
|
99
|
+
*/
|
|
100
|
+
private originStore;
|
|
101
|
+
/**
|
|
102
|
+
* 当前 AppId Store
|
|
103
|
+
*/
|
|
104
|
+
private currentStore;
|
|
105
|
+
/**
|
|
106
|
+
* 单账号直接回填
|
|
107
|
+
*/
|
|
108
|
+
private firstBackFillData?;
|
|
109
|
+
/**
|
|
110
|
+
* server 返回支持的登录方式
|
|
111
|
+
*/
|
|
112
|
+
private serverSideLoginMethods;
|
|
113
|
+
/**
|
|
114
|
+
* 是否显示多账号登录页面
|
|
115
|
+
* true 存在
|
|
116
|
+
*/
|
|
117
|
+
private memberState;
|
|
118
|
+
/**
|
|
119
|
+
* 二维码登录时的ID
|
|
120
|
+
*/
|
|
121
|
+
private qrCodeId?;
|
|
122
|
+
/**
|
|
123
|
+
* 国际化短信前缀 区号
|
|
124
|
+
*/
|
|
125
|
+
private phoneCountryCode?;
|
|
126
|
+
/**
|
|
127
|
+
* 国际化短信前缀 选中地区编号
|
|
128
|
+
*/
|
|
129
|
+
private areaCode?;
|
|
130
|
+
private tabStatus?;
|
|
131
|
+
/**
|
|
132
|
+
* 当前登录二级状态
|
|
133
|
+
*/
|
|
134
|
+
private loginWay?;
|
|
135
|
+
private appId;
|
|
136
|
+
/**
|
|
137
|
+
* 是否开启国际化短信
|
|
138
|
+
*/
|
|
139
|
+
private isInternationSms?;
|
|
140
|
+
constructor();
|
|
141
|
+
/**
|
|
142
|
+
* 页面首次加载时初始化 Store
|
|
143
|
+
* 从 LocalStore 中拿值 放到这里来
|
|
144
|
+
*/
|
|
145
|
+
private initStore;
|
|
146
|
+
/**
|
|
147
|
+
* 初始化记住账号相关信息
|
|
148
|
+
* @param normalCount
|
|
149
|
+
* @returns
|
|
150
|
+
*/
|
|
151
|
+
private initMemberState;
|
|
152
|
+
/**
|
|
153
|
+
* 获取当前ID下有效账号个数
|
|
154
|
+
* @returns qrCount 有效的二维码登录个数 normalCount 有效的账号登录方式
|
|
155
|
+
*/
|
|
156
|
+
private memberStateCount;
|
|
157
|
+
/**
|
|
158
|
+
* 初始化第一次的数据 TODO: 逻辑有点脏 待整理
|
|
159
|
+
*/
|
|
160
|
+
private initBackfillData;
|
|
161
|
+
/**
|
|
162
|
+
* 根据前端存储的登录方式返回后端映射方式
|
|
163
|
+
* @param front
|
|
164
|
+
*/
|
|
165
|
+
private getServerLoginMethodByFront;
|
|
166
|
+
/**
|
|
167
|
+
* 当前 Store DONE
|
|
168
|
+
*/
|
|
169
|
+
private getCurrentStore;
|
|
170
|
+
/**
|
|
171
|
+
* 国际化短信过滤
|
|
172
|
+
* true 表示通过 需要保留
|
|
173
|
+
* false 表示不通过 需要过滤
|
|
174
|
+
*/
|
|
175
|
+
private validateInternationSms;
|
|
176
|
+
/**
|
|
177
|
+
* 校验有效的登录方式账号
|
|
178
|
+
* @param user
|
|
179
|
+
* @param serverSideLoginMethods
|
|
180
|
+
* @returns
|
|
181
|
+
*/
|
|
182
|
+
private validateMethod;
|
|
183
|
+
/**
|
|
184
|
+
*
|
|
185
|
+
* @param tab 一级Tab状态
|
|
186
|
+
* @param way 二级Tab状态
|
|
187
|
+
* @param id 二维码登录时 记录对应的二维码 ID
|
|
188
|
+
*/
|
|
189
|
+
private setLoginWay;
|
|
190
|
+
/**
|
|
191
|
+
* 设置/更新 store 内的用户信息
|
|
192
|
+
*/
|
|
193
|
+
private setUserInfo;
|
|
194
|
+
/**
|
|
195
|
+
* 持久化保存
|
|
196
|
+
*/
|
|
197
|
+
private saveStore;
|
|
198
|
+
/**
|
|
199
|
+
* 根据登录的 account 判断本次登录的方式
|
|
200
|
+
* @param account 登录输入的账号
|
|
201
|
+
* @param param1 登录成功返回的相关信息 用户名/手机号/邮箱
|
|
202
|
+
* @returns
|
|
203
|
+
*/
|
|
204
|
+
private setLoginWayByHttpData;
|
|
205
|
+
/**
|
|
206
|
+
* 根据登录的 account 判断本次LDAP登录方式
|
|
207
|
+
* @param account 登录输入的账号
|
|
208
|
+
* @param param1 登录成功返回的相关信息 用户名/手机号/邮箱
|
|
209
|
+
* @returns
|
|
210
|
+
*/
|
|
211
|
+
private setLoginWayByLDAPData;
|
|
212
|
+
/**
|
|
213
|
+
* 根据用户 ID 删除 localStorage 中当前用户 ID
|
|
214
|
+
*/
|
|
215
|
+
private delUserById;
|
|
216
|
+
/**
|
|
217
|
+
* 获得多账号登录页面的所有用户列表
|
|
218
|
+
* @param excludeWays
|
|
219
|
+
*/
|
|
220
|
+
private getMemoUser;
|
|
221
|
+
/**
|
|
222
|
+
* 根据 id 获得当前已登录的用户信息
|
|
223
|
+
* @param userId
|
|
224
|
+
* @returns User / undefined
|
|
225
|
+
*/
|
|
226
|
+
private getMemoSingleUser;
|
|
227
|
+
/**
|
|
228
|
+
* 该方法仅仅需要回填账号的登录方式,其他都不计入
|
|
229
|
+
* 当用户名/手机号/邮箱/AD/LDAP 相同时,根据登录顺序匹配不同的账号
|
|
230
|
+
* 根据记住的用户登录方式获取对应的登录账户名
|
|
231
|
+
* @param way
|
|
232
|
+
* @param user
|
|
233
|
+
* @returns
|
|
234
|
+
*/
|
|
235
|
+
private getAccountByWay;
|
|
236
|
+
private _mappingUser;
|
|
237
|
+
/**
|
|
238
|
+
* 外部暴露方法
|
|
239
|
+
*/
|
|
240
|
+
getStore: () => {
|
|
241
|
+
initStore: (appId: string, options: {
|
|
242
|
+
serverSideLoginMethods: LoginWay[];
|
|
243
|
+
isInternationSms: boolean;
|
|
244
|
+
}) => void;
|
|
245
|
+
setLoginWay: (tab: 'input' | 'qrcode', way: LoginWay, id?: string, internation?: {
|
|
246
|
+
phoneCountryCode: string;
|
|
247
|
+
areaCode: string;
|
|
248
|
+
}) => void;
|
|
249
|
+
setUserInfo: (user: Omit<User & {
|
|
250
|
+
id: string;
|
|
251
|
+
loginAccount?: string | undefined;
|
|
252
|
+
usertype?: string | undefined;
|
|
253
|
+
}, "tab" | "way" | "phoneCountryCode">) => void;
|
|
254
|
+
setLoginWayByHttpData: (account: string, data: {
|
|
255
|
+
username?: string | undefined;
|
|
256
|
+
phone?: string | undefined;
|
|
257
|
+
email?: string | undefined;
|
|
258
|
+
}) => void;
|
|
259
|
+
setLoginWayByLDAPData: (account: string, data: {
|
|
260
|
+
name?: string | undefined;
|
|
261
|
+
phone?: string | undefined;
|
|
262
|
+
email?: string | undefined;
|
|
263
|
+
}) => void;
|
|
264
|
+
getMemoUser: (excludeWays?: LoginWay[]) => SelectOptions[];
|
|
265
|
+
getMemoSingleUser: (id: string) => {
|
|
266
|
+
way: LoginWay;
|
|
267
|
+
account: string;
|
|
268
|
+
} | undefined;
|
|
269
|
+
delUserById: (id: string) => string;
|
|
270
|
+
getMemberState: () => boolean;
|
|
271
|
+
getFirstBackFillData: () => BackFillMultipleState | undefined;
|
|
272
|
+
getOriginAccount: () => string;
|
|
273
|
+
getOriginWay: () => string;
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* MultipleAccounts 相关 Hook
|
|
278
|
+
* Finally Config 类型过滤
|
|
279
|
+
*/
|
|
280
|
+
declare const useMultipleAccounts: ({ appId, finallyConfig, }: {
|
|
281
|
+
appId?: string | undefined;
|
|
282
|
+
finallyConfig?: any;
|
|
283
|
+
}) => {
|
|
284
|
+
instance: {
|
|
285
|
+
initStore: (appId: string, options: {
|
|
286
|
+
serverSideLoginMethods: LoginWay[];
|
|
287
|
+
isInternationSms: boolean;
|
|
288
|
+
}) => void;
|
|
289
|
+
setLoginWay: (tab: 'input' | 'qrcode', way: LoginWay, id?: string, internation?: {
|
|
290
|
+
phoneCountryCode: string;
|
|
291
|
+
areaCode: string;
|
|
292
|
+
}) => void;
|
|
293
|
+
setUserInfo: (user: Omit<User & {
|
|
294
|
+
id: string;
|
|
295
|
+
loginAccount?: string | undefined;
|
|
296
|
+
usertype?: string | undefined;
|
|
297
|
+
}, "tab" | "way" | "phoneCountryCode">) => void;
|
|
298
|
+
setLoginWayByHttpData: (account: string, data: {
|
|
299
|
+
username?: string | undefined;
|
|
300
|
+
phone?: string | undefined;
|
|
301
|
+
email?: string | undefined;
|
|
302
|
+
}) => void;
|
|
303
|
+
setLoginWayByLDAPData: (account: string, data: {
|
|
304
|
+
name?: string | undefined;
|
|
305
|
+
phone?: string | undefined;
|
|
306
|
+
email?: string | undefined;
|
|
307
|
+
}) => void;
|
|
308
|
+
getMemoUser: (excludeWays?: LoginWay[]) => SelectOptions[];
|
|
309
|
+
getMemoSingleUser: (id: string) => {
|
|
310
|
+
way: LoginWay;
|
|
311
|
+
account: string;
|
|
312
|
+
} | undefined;
|
|
313
|
+
delUserById: (id: string) => string;
|
|
314
|
+
getMemberState: () => boolean;
|
|
315
|
+
getFirstBackFillData: () => BackFillMultipleState | undefined;
|
|
316
|
+
getOriginAccount: () => string;
|
|
317
|
+
getOriginWay: () => string;
|
|
318
|
+
} | undefined;
|
|
319
|
+
isMultipleAccount: boolean;
|
|
320
|
+
referMultipleState: (type: 'login' | 'multiple', data?: BackFillMultipleState) => void;
|
|
321
|
+
multipleAccountData: BackFillMultipleState | undefined;
|
|
322
|
+
clearBackFillData: () => void;
|
|
323
|
+
};
|
|
324
|
+
export default useMultipleAccounts;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GuardProps } from '..';
|
|
2
|
+
import React, { ReactNode } from 'react';
|
|
3
|
+
import { ModuleState } from '../GuardModule/stateMachine';
|
|
4
|
+
export declare const RenderContext: React.FC<{
|
|
5
|
+
guardProps: GuardProps;
|
|
6
|
+
initState: ModuleState;
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { GuardProps } from '..';
|
|
3
|
+
import '../styles.less';
|
|
4
|
+
export declare enum LangMAP {
|
|
5
|
+
zhCn = "zh-CN",
|
|
6
|
+
enUs = "en-US",
|
|
7
|
+
jaJp = "ja-JP"
|
|
8
|
+
}
|
|
9
|
+
export declare const RenderModule: React.FC<{
|
|
10
|
+
guardProps: GuardProps;
|
|
11
|
+
}>;
|