@authing/react-ui-components 3.0.2-alpha.2 → 3.0.2-beta.12

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.
Files changed (254) hide show
  1. package/lib/index.d.ts +620 -52
  2. package/lib/index.min.css +2 -2
  3. package/lib/index.min.js +1 -1
  4. package/package.json +29 -8
  5. package/.eslintignore +0 -6
  6. package/.eslintrc.js +0 -7
  7. package/.prettierrc +0 -5
  8. package/.vscode/settings.json +0 -31
  9. package/build/asset-manifest.json +0 -26
  10. package/build/favicon.ico +0 -0
  11. package/build/index.html +0 -1
  12. package/build/logo192.png +0 -0
  13. package/build/logo512.png +0 -0
  14. package/build/manifest.json +0 -25
  15. package/build/robots.txt +0 -3
  16. package/build/static/css/2.9512539b.chunk.css +0 -3
  17. package/build/static/css/2.9512539b.chunk.css.map +0 -1
  18. package/build/static/css/main.0ff9e24a.chunk.css +0 -2
  19. package/build/static/css/main.0ff9e24a.chunk.css.map +0 -1
  20. package/build/static/js/2.1105ecfb.chunk.js +0 -3
  21. package/build/static/js/2.1105ecfb.chunk.js.LICENSE.txt +0 -102
  22. package/build/static/js/2.1105ecfb.chunk.js.map +0 -1
  23. package/build/static/js/3.fd17f196.chunk.js +0 -2
  24. package/build/static/js/3.fd17f196.chunk.js.map +0 -1
  25. package/build/static/js/main.a47645ff.chunk.js +0 -2
  26. package/build/static/js/main.a47645ff.chunk.js.map +0 -1
  27. package/build/static/js/runtime-main.ef138021.js +0 -2
  28. package/build/static/js/runtime-main.ef138021.js.map +0 -1
  29. package/build/static/media/loading.4a67a5f3.svg +0 -29
  30. package/components/AuthingDropdown/index.tsx +0 -52
  31. package/components/AuthingDropdown/style.less +0 -43
  32. package/components/AuthingGuard/AppMFALayout/index.tsx +0 -74
  33. package/components/AuthingGuard/AppMFALayout/style.less +0 -12
  34. package/components/AuthingGuard/CompleteUserInfoLayout/index.tsx +0 -29
  35. package/components/AuthingGuard/CompleteUserInfoLayout/style.less +0 -8
  36. package/components/AuthingGuard/Forms/ADLoginForm/index.tsx +0 -117
  37. package/components/AuthingGuard/Forms/Agreements/index.tsx +0 -81
  38. package/components/AuthingGuard/Forms/Agreements/style.less +0 -44
  39. package/components/AuthingGuard/Forms/CompleteUserInfoForm/index.tsx +0 -139
  40. package/components/AuthingGuard/Forms/EmailMfaVerifyForm/CheckEmailForm.tsx +0 -84
  41. package/components/AuthingGuard/Forms/EmailMfaVerifyForm/VerifyCodeForm.tsx +0 -116
  42. package/components/AuthingGuard/Forms/EmailMfaVerifyForm/index.tsx +0 -40
  43. package/components/AuthingGuard/Forms/EmailMfaVerifyForm/style.less +0 -0
  44. package/components/AuthingGuard/Forms/EmailRegisterForm/index.tsx +0 -181
  45. package/components/AuthingGuard/Forms/EmailRegisterForm/style.less +0 -0
  46. package/components/AuthingGuard/Forms/LdapLoginForm/index.tsx +0 -166
  47. package/components/AuthingGuard/Forms/LdapLoginForm/style.less +0 -0
  48. package/components/AuthingGuard/Forms/LoginFormFooter/index.tsx +0 -76
  49. package/components/AuthingGuard/Forms/LoginFormFooter/style.less +0 -6
  50. package/components/AuthingGuard/Forms/MfaResetCodeForm/Step1.tsx +0 -86
  51. package/components/AuthingGuard/Forms/MfaResetCodeForm/Step2.tsx +0 -53
  52. package/components/AuthingGuard/Forms/MfaResetCodeForm/index.tsx +0 -65
  53. package/components/AuthingGuard/Forms/MfaResetCodeForm/style.less +0 -20
  54. package/components/AuthingGuard/Forms/MfaVerifyForm/index.tsx +0 -105
  55. package/components/AuthingGuard/Forms/MfaVerifyForm/style.less +0 -12
  56. package/components/AuthingGuard/Forms/PasswordLoginForm/index.tsx +0 -261
  57. package/components/AuthingGuard/Forms/PhoneCodeLoginForm/index.tsx +0 -133
  58. package/components/AuthingGuard/Forms/PhoneRegisterForm/index.tsx +0 -202
  59. package/components/AuthingGuard/Forms/QrCodeLoginForm/index.tsx +0 -59
  60. package/components/AuthingGuard/Forms/QrCodeLoginForm/style.less +0 -14
  61. package/components/AuthingGuard/Forms/RegisterFormFooter/index.tsx +0 -56
  62. package/components/AuthingGuard/Forms/RegisterFormFooter/style.less +0 -0
  63. package/components/AuthingGuard/Forms/ResetPwdForm/Footer.tsx +0 -21
  64. package/components/AuthingGuard/Forms/ResetPwdForm/Step1.tsx +0 -86
  65. package/components/AuthingGuard/Forms/ResetPwdForm/Step2.tsx +0 -127
  66. package/components/AuthingGuard/Forms/ResetPwdForm/Step3.tsx +0 -141
  67. package/components/AuthingGuard/Forms/ResetPwdForm/Step4.tsx +0 -51
  68. package/components/AuthingGuard/Forms/ResetPwdForm/index.tsx +0 -96
  69. package/components/AuthingGuard/Forms/ResetPwdForm/style.less +0 -3
  70. package/components/AuthingGuard/Forms/SendPhoneCode/SendCodeBtn.tsx +0 -88
  71. package/components/AuthingGuard/Forms/SendPhoneCode/index.tsx +0 -50
  72. package/components/AuthingGuard/Forms/SendPhoneCode/style.less +0 -26
  73. package/components/AuthingGuard/Forms/SmsMfaVerifyForm/CheckPhoneForm.tsx +0 -86
  74. package/components/AuthingGuard/Forms/SmsMfaVerifyForm/VerifyCodeForm.tsx +0 -113
  75. package/components/AuthingGuard/Forms/SmsMfaVerifyForm/index.tsx +0 -40
  76. package/components/AuthingGuard/Forms/SmsMfaVerifyForm/style.less +0 -3
  77. package/components/AuthingGuard/Forms/SocialAndIdpLogin/index.tsx +0 -325
  78. package/components/AuthingGuard/Forms/SocialAndIdpLogin/style.less +0 -75
  79. package/components/AuthingGuard/Forms/UploadImage/index.tsx +0 -70
  80. package/components/AuthingGuard/Forms/index.ts +0 -13
  81. package/components/AuthingGuard/GuardLayout/index.tsx +0 -474
  82. package/components/AuthingGuard/GuardLayout/style.less +0 -111
  83. package/components/AuthingGuard/Header/index.tsx +0 -25
  84. package/components/AuthingGuard/Header/style.less +0 -52
  85. package/components/AuthingGuard/IconFont/iconfont.js +0 -74
  86. package/components/AuthingGuard/IconFont/index.tsx +0 -19
  87. package/components/AuthingGuard/IconFont/style.less +0 -6
  88. package/components/AuthingGuard/IconFont/svg.js +0 -2
  89. package/components/AuthingGuard/LoginLayout/index.tsx +0 -161
  90. package/components/AuthingGuard/LoginLayout/style.less +0 -0
  91. package/components/AuthingGuard/MfaLayout/Steps.ts +0 -4
  92. package/components/AuthingGuard/MfaLayout/index.tsx +0 -49
  93. package/components/AuthingGuard/MfaLayout/style.less +0 -3
  94. package/components/AuthingGuard/RegisterLayout/index.tsx +0 -89
  95. package/components/AuthingGuard/RegisterLayout/style.less +0 -0
  96. package/components/AuthingGuard/ResetPwdLayout/index.tsx +0 -20
  97. package/components/AuthingGuard/ToggleLang/index.tsx +0 -51
  98. package/components/AuthingGuard/api/appConfig.ts +0 -146
  99. package/components/AuthingGuard/api/index.ts +0 -3
  100. package/components/AuthingGuard/api/sso.ts +0 -29
  101. package/components/AuthingGuard/api/userPoolConfig.ts +0 -111
  102. package/components/AuthingGuard/constants.ts +0 -105
  103. package/components/AuthingGuard/hooks/index.tsx +0 -70
  104. package/components/AuthingGuard/hooks/useScreenSize.tsx +0 -68
  105. package/components/AuthingGuard/index.tsx +0 -126
  106. package/components/AuthingGuard/style.less +0 -103
  107. package/components/AuthingGuard/types/Forms.ts +0 -94
  108. package/components/AuthingGuard/types/GuardConfig.ts +0 -420
  109. package/components/AuthingGuard/types/GuardState.ts +0 -7
  110. package/components/AuthingGuard/types/Locales.ts +0 -12
  111. package/components/AuthingGuard/types/index.ts +0 -4
  112. package/components/AuthingTabs/index.tsx +0 -98
  113. package/components/AuthingTabs/style.less +0 -135
  114. package/components/BindTotp/core/bindSuccess.tsx +0 -61
  115. package/components/BindTotp/core/securityCode.tsx +0 -119
  116. package/components/BindTotp/index.tsx +0 -134
  117. package/components/BindTotp/interface.ts +0 -30
  118. package/components/BindTotp/styles.less +0 -57
  119. package/components/ChangeLanguage/index.tsx +0 -35
  120. package/components/ChangePassword/core/firstLoginReset.tsx +0 -104
  121. package/components/ChangePassword/core/rotateReset.tsx +0 -114
  122. package/components/ChangePassword/index.tsx +0 -59
  123. package/components/CompleteInfo/core/completeInfo.tsx +0 -155
  124. package/components/CompleteInfo/index.tsx +0 -45
  125. package/components/CompleteInfo/interface.ts +0 -40
  126. package/components/CompleteInfo/styles.less +0 -7
  127. package/components/CopyAbleText/index.tsx +0 -54
  128. package/components/CopyAbleText/style.less +0 -13
  129. package/components/DownloadAuthenticator/index.tsx +0 -97
  130. package/components/DownloadAuthenticator/interface.ts +0 -22
  131. package/components/DownloadAuthenticator/styles.less +0 -52
  132. package/components/Error/index.tsx +0 -21
  133. package/components/Error/interface.ts +0 -9
  134. package/components/Error/styles.less +0 -12
  135. package/components/ForgetPassword/core/resetPassword.tsx +0 -162
  136. package/components/ForgetPassword/index.tsx +0 -75
  137. package/components/ForgetPassword/interface.ts +0 -32
  138. package/components/Guard/Guard.tsx +0 -242
  139. package/components/Guard/authClient.ts +0 -55
  140. package/components/Guard/config.ts +0 -19
  141. package/components/Guard/event.ts +0 -52
  142. package/components/Guard/index.tsx +0 -4
  143. package/components/Guard/module.ts +0 -19
  144. package/components/Guard/stateMachine.ts +0 -133
  145. package/components/Guard/styles.less +0 -444
  146. package/components/IconFont/iconfont.js +0 -74
  147. package/components/IconFont/index.tsx +0 -16
  148. package/components/IconFont/style.less +0 -6
  149. package/components/IconFont/svg.js +0 -2
  150. package/components/ImagePro/index.tsx +0 -52
  151. package/components/ImagePro/styles.less +0 -40
  152. package/components/InputNumber/index.tsx +0 -33
  153. package/components/Login/codemap.ts +0 -39
  154. package/components/Login/core/withAD.tsx +0 -9
  155. package/components/Login/core/withAppQrcode.tsx +0 -49
  156. package/components/Login/core/withLDAP.tsx +0 -146
  157. package/components/Login/core/withPassword.tsx +0 -176
  158. package/components/Login/core/withPhonecode.tsx +0 -121
  159. package/components/Login/core/withWechatMiniQrcode.tsx +0 -60
  160. package/components/Login/core/withWechatmpQrcode.tsx +0 -53
  161. package/components/Login/index.tsx +0 -368
  162. package/components/Login/props.ts +0 -74
  163. package/components/Login/socialLogin/index.tsx +0 -413
  164. package/components/Login/socialLogin/style.less +0 -61
  165. package/components/Login/styles.less +0 -53
  166. package/components/MFA/codemap.ts +0 -21
  167. package/components/MFA/core/email.tsx +0 -225
  168. package/components/MFA/core/face.tsx +0 -297
  169. package/components/MFA/core/face_deps.tsx +0 -37
  170. package/components/MFA/core/sms.tsx +0 -229
  171. package/components/MFA/core/totp.tsx +0 -137
  172. package/components/MFA/index.tsx +0 -137
  173. package/components/MFA/mfaMethods/index.tsx +0 -81
  174. package/components/MFA/mfaMethods/style.less +0 -39
  175. package/components/MFA/props.ts +0 -51
  176. package/components/MFA/styles.less +0 -93
  177. package/components/NeedHelpView/core/describeQuestions.tsx +0 -223
  178. package/components/NeedHelpView/index.tsx +0 -99
  179. package/components/RecoveryCode/core/useCode.tsx +0 -71
  180. package/components/RecoveryCode/index.tsx +0 -27
  181. package/components/RecoveryCode/interface.ts +0 -31
  182. package/components/RecoveryCode/style.less +0 -13
  183. package/components/Register/codemap.ts +0 -16
  184. package/components/Register/components/Agreements/index.tsx +0 -81
  185. package/components/Register/components/Agreements/style.less +0 -44
  186. package/components/Register/core/WithEmail.tsx +0 -236
  187. package/components/Register/core/WithPhone.tsx +0 -184
  188. package/components/Register/index.tsx +0 -123
  189. package/components/Register/props.ts +0 -50
  190. package/components/SendCode/SendCodeBtn.tsx +0 -96
  191. package/components/SendCode/index.tsx +0 -94
  192. package/components/SendCode/style.less +0 -31
  193. package/components/ShieldSpin/index.tsx +0 -27
  194. package/components/ShieldSpin/loading.svg +0 -29
  195. package/components/SubmitButton/index.tsx +0 -50
  196. package/components/Type/index.ts +0 -52
  197. package/components/ValidatorRules/EmailFormItem.tsx +0 -81
  198. package/components/ValidatorRules/PhoneFormItem.tsx +0 -90
  199. package/components/ValidatorRules/index.ts +0 -14
  200. package/components/VerifyCodeInput/index.tsx +0 -76
  201. package/components/VerifyCodeInput/style.less +0 -24
  202. package/components/_utils/GuardErrorCode.ts +0 -8
  203. package/components/_utils/clipboard.ts +0 -27
  204. package/components/_utils/config.ts +0 -121
  205. package/components/_utils/guradHttp.ts +0 -93
  206. package/components/_utils/hooks/index.ts +0 -64
  207. package/components/_utils/http.ts +0 -85
  208. package/components/_utils/index.ts +0 -319
  209. package/components/_utils/locales/en/common.json +0 -223
  210. package/components/_utils/locales/en/index.ts +0 -6
  211. package/components/_utils/locales/en/login.json +0 -96
  212. package/components/_utils/locales/en/map.json +0 -4
  213. package/components/_utils/locales/en/user.json +0 -82
  214. package/components/_utils/locales/index.ts +0 -45
  215. package/components/_utils/locales/zh/common.json +0 -223
  216. package/components/_utils/locales/zh/index.ts +0 -6
  217. package/components/_utils/locales/zh/login.json +0 -96
  218. package/components/_utils/locales/zh/map.json +0 -4
  219. package/components/_utils/locales/zh/user.json +0 -82
  220. package/components/_utils/popupCenter.ts +0 -48
  221. package/components/assets/images/error.png +0 -0
  222. package/components/context/base.tsx +0 -28
  223. package/components/context/global/context.tsx +0 -39
  224. package/components/context/global/reducer.tsx +0 -56
  225. package/components/context/module/context.tsx +0 -23
  226. package/components/index.ts +0 -12
  227. package/config/antdReplacer.js +0 -51
  228. package/config/env.js +0 -104
  229. package/config/getHttpsConfig.js +0 -66
  230. package/config/jest/cssTransform.js +0 -14
  231. package/config/jest/fileTransform.js +0 -40
  232. package/config/modules.js +0 -134
  233. package/config/paths.js +0 -71
  234. package/config/pnpTs.js +0 -35
  235. package/config/webpack.config.js +0 -835
  236. package/config/webpackDevServer.config.js +0 -130
  237. package/examples.tsx +0 -107
  238. package/index.js +0 -1
  239. package/lib/static/media/loading.4a67a5f3.svg +0 -29
  240. package/logo.svg +0 -7
  241. package/public/favicon.ico +0 -0
  242. package/public/index.html +0 -43
  243. package/public/logo192.png +0 -0
  244. package/public/logo512.png +0 -0
  245. package/public/manifest.json +0 -25
  246. package/public/robots.txt +0 -3
  247. package/react-app-env.d.ts +0 -71
  248. package/reportWebVitals.ts +0 -15
  249. package/scripts/build.js +0 -208
  250. package/scripts/lib.js +0 -200
  251. package/scripts/start.js +0 -162
  252. package/scripts/test.js +0 -49
  253. package/setupTests.ts +0 -5
  254. package/tsconfig.json +0 -30
@@ -1,22 +0,0 @@
1
- import { getDefaultG2Config, IG2Config, IG2Events, IG2FCProps } from '../Type'
2
-
3
- export interface DownloadATConfig extends IG2Config {}
4
-
5
- const defaultConfig: DownloadATConfig = {
6
- ...getDefaultG2Config(),
7
- }
8
-
9
- export const getDefaultDownloadAuthenticatorConfig = (): DownloadATConfig => ({
10
- ...getDefaultG2Config(),
11
- ...defaultConfig,
12
- })
13
-
14
- export interface DownloadATEvents extends IG2Events {}
15
-
16
- export interface GuardDownloadATProps extends IG2FCProps, DownloadATEvents {
17
- config: Partial<DownloadATConfig>
18
- }
19
-
20
- export interface GuardDownloadATViewProps extends GuardDownloadATProps {
21
- config: DownloadATConfig
22
- }
@@ -1,52 +0,0 @@
1
- .g2-view-container-totp-dl {
2
- width: 900px;
3
- padding: 0;
4
- }
5
- .g2-mfa-totp-title {
6
- width: 100%;
7
- height: 54px;
8
- display: flex;
9
- align-items: center;
10
- justify-content: center;
11
- font-size: 16px;
12
- color: #293350;
13
- border-bottom: 1px solid #eaebee;
14
- margin-bottom: 54px;
15
- }
16
- .g2-mfa-totp-download-tabs {
17
- margin-top: 30px;
18
- }
19
-
20
- .g2-mfa-download-at-tab {
21
- display: flex;
22
- flex-direction: column;
23
- align-items: center;
24
- margin-top: 15px;
25
-
26
- .g2-mfa-totp-download-subtitle {
27
- color: #545968;
28
- }
29
-
30
- .g2-mfa-totp-download-qrcode-item {
31
- display: flex;
32
- flex-direction: column;
33
- align-items: center;
34
-
35
- margin-top: 35px;
36
-
37
- .g2-mfa-totp-download-image {
38
- width: 130px;
39
- height: 130px;
40
- display: flex;
41
- align-items: center;
42
- justify-content: center;
43
- box-shadow: 0px 0px 30px rgba(84, 89, 104, 0.15);
44
- border-radius: 4px;
45
- }
46
-
47
- .g2-mfa-totp-download-qrcode-text {
48
- margin-top: 8px;
49
- color: #545968;
50
- }
51
- }
52
- }
@@ -1,21 +0,0 @@
1
- import React from 'react'
2
- import { ImagePro } from '../ImagePro'
3
- import { GuardErrorViewProps } from './interface'
4
-
5
- import './styles.less'
6
-
7
- export const GuardErrorView: React.FC<GuardErrorViewProps> = (props) => {
8
- const messages = props?.initData?.messages
9
- ? `出错了~:${props?.initData?.messages} `
10
- : `未知的错误~ 请您联系管理员进行处理`
11
- const imgSrc = require('../assets/images/error.png').default
12
-
13
- return (
14
- <div className="g2-view-container">
15
- <div className="g2-error-content">
16
- <ImagePro width={240} height={162} src={imgSrc} alt="guard error img" />
17
- <span>{messages}</span>
18
- </div>
19
- </div>
20
- )
21
- }
@@ -1,9 +0,0 @@
1
- export interface ErrorInitData {
2
- messages?: string
3
- }
4
-
5
- export interface GuardErrorProps {
6
- initData?: ErrorInitData
7
- }
8
-
9
- export interface GuardErrorViewProps extends GuardErrorProps {}
@@ -1,12 +0,0 @@
1
- .g2-error-content {
2
- display: flex;
3
- flex-direction: column;
4
- align-items: center;
5
- margin: auto 0;
6
-
7
- span {
8
- margin-top: 33px;
9
- color: #545968;
10
- font-size: 14px;
11
- }
12
- }
@@ -1,162 +0,0 @@
1
- import React, { useRef, useState } from 'react'
2
- import { useTranslation } from 'react-i18next'
3
- import { Form, Input } from 'antd'
4
- import { StoreValue } from 'antd/lib/form/interface'
5
-
6
- import { UserOutlined, SafetyOutlined, LockOutlined } from '@ant-design/icons'
7
- import { SendCode } from '../../SendCode'
8
-
9
- import { useAuthClient } from '../../Guard/authClient'
10
- import { fieldRequiredRule, getPasswordValidate, validate } from '../../_utils'
11
- import SubmitButton from '../../SubmitButton'
12
-
13
- interface ResetPasswordProps {
14
- onReset: any
15
- publicConfig: any
16
- onSend: (type: 'email' | 'phone') => void
17
- onSendError: (type: 'email' | 'phone', error: any) => void
18
- }
19
- export const ResetPassword = (props: ResetPasswordProps) => {
20
- const { t } = useTranslation()
21
- let [form] = Form.useForm()
22
- let [identify, setIdentify] = useState('')
23
- let [codeMethod, setCodeMethod] = useState<'phone' | 'email'>('phone')
24
- let client = useAuthClient()
25
- let submitButtonRef = useRef<any>(null)
26
-
27
- const verifyCodeLength = props.publicConfig.verifyCodeLength ?? 4
28
-
29
- const onFinish = async (values: any) => {
30
- let identify = values.identify
31
- let code = values.code
32
- let newPassword = values.password
33
- let context = new Promise(() => {})
34
-
35
- if (codeMethod === 'email') {
36
- context = client.resetPasswordByEmailCode(identify, code, newPassword)
37
- }
38
- if (codeMethod === 'phone') {
39
- context = client.resetPasswordByPhoneCode(identify, code, newPassword)
40
- }
41
-
42
- context
43
- .then((r) => {
44
- props.onSend(codeMethod)
45
- props.onReset(r)
46
- })
47
- .catch((e) => {
48
- props.onSendError(codeMethod, e)
49
- props.onReset(e)
50
- })
51
- }
52
-
53
- return (
54
- <div className="authing-g2-login-phone-code">
55
- <Form
56
- name="resetPassword"
57
- form={form}
58
- onFinish={onFinish}
59
- onFinishFailed={() => {
60
- submitButtonRef?.current?.onError()
61
- }}
62
- autoComplete="off"
63
- >
64
- <Form.Item
65
- className="authing-g2-input-form"
66
- name="identify"
67
- validateFirst={true}
68
- rules={[
69
- ...fieldRequiredRule(t('common.account')),
70
- {
71
- validator: async (_, value: StoreValue) => {
72
- if (!value) {
73
- return
74
- }
75
- if (validate('email', value) || validate('phone', value)) {
76
- return
77
- } else {
78
- throw new Error(t('login.inputCorrectPhoneOrEmail'))
79
- }
80
- },
81
- },
82
- ]}
83
- >
84
- <Input
85
- className="authing-g2-input"
86
- autoComplete="tel"
87
- size="large"
88
- placeholder={t('login.inputPhoneOrEmail')}
89
- value={identify}
90
- onChange={(e) => {
91
- let v = e.target.value
92
- setIdentify(v)
93
- if (validate('email', v)) {
94
- setCodeMethod('email')
95
- }
96
- if (validate('phone', v)) {
97
- setCodeMethod('phone')
98
- }
99
- }}
100
- prefix={<UserOutlined style={{ color: '#878A95' }} />}
101
- />
102
- </Form.Item>
103
- <Form.Item
104
- className="authing-g2-input-form"
105
- name="code"
106
- rules={[...fieldRequiredRule(t('common.captchaCode'))]}
107
- >
108
- <SendCode
109
- className="authing-g2-input"
110
- autoComplete="one-time-code"
111
- size="large"
112
- placeholder={t('common.inputFourVerifyCode', {
113
- length: verifyCodeLength,
114
- })}
115
- prefix={<SafetyOutlined style={{ color: '#878A95' }} />}
116
- maxLength={verifyCodeLength}
117
- method={codeMethod}
118
- data={identify}
119
- onSendCodeBefore={async () => {
120
- await form.validateFields(['identify'])
121
- }}
122
-
123
- // form={form}
124
- />
125
- </Form.Item>
126
- <Form.Item
127
- className="authing-g2-input-form"
128
- name="password"
129
- validateFirst={true}
130
- rules={[
131
- {
132
- validator(_, value) {
133
- if (value.indexOf(' ') !== -1) {
134
- return Promise.reject(t('common.checkPasswordHasSpace'))
135
- }
136
- return Promise.resolve()
137
- },
138
- },
139
- ...getPasswordValidate(
140
- props.publicConfig?.passwordStrength,
141
- props.publicConfig?.customPasswordStrength
142
- ),
143
- ]}
144
- >
145
- <Input.Password
146
- className="authing-g2-input"
147
- size="large"
148
- placeholder={t('user.inputNewPwd')}
149
- prefix={<LockOutlined style={{ color: '#878A95' }} />}
150
- />
151
- </Form.Item>
152
- <Form.Item className="authing-g2-input-form submit-form">
153
- <SubmitButton
154
- className="forget-password"
155
- text={t('common.confirm')}
156
- ref={submitButtonRef}
157
- />
158
- </Form.Item>
159
- </Form>
160
- </div>
161
- )
162
- }
@@ -1,75 +0,0 @@
1
- import React from 'react'
2
- import { useTranslation } from 'react-i18next'
3
- import { message } from 'antd'
4
-
5
- import { GuardModuleType } from '../Guard/module'
6
- import { ResetPassword } from './core/resetPassword'
7
-
8
- import { ImagePro } from '../ImagePro'
9
- import { ForgetPasswordViewProps } from './interface'
10
- import { useAuthClient } from '../Guard/authClient'
11
- import { CommonMessage } from '..'
12
-
13
- export const GuardForgetPassword: React.FC<ForgetPasswordViewProps> = (
14
- props
15
- ) => {
16
- const { t } = useTranslation()
17
- let publicConfig = props.config.__publicConfig__
18
- const authClient = useAuthClient()
19
-
20
- const onReset = (res: any) => {
21
- let code = res.code
22
- if (code !== 200) {
23
- props.onPwdResetError?.(res, authClient)
24
- message.error(res.message)
25
- return
26
- }
27
- props.onPwdReset?.(authClient)
28
- // 返回登录
29
- props.__changeModule?.(GuardModuleType.LOGIN)
30
- }
31
-
32
- const onSend = (type: 'phone' | 'email') => {
33
- if (type === 'phone') props.onPwdPhoneSend?.(authClient)
34
- if (type === 'email') props.onPwdEmailSend?.(authClient)
35
- }
36
- const onSendError = (type: 'phone' | 'email', error: any) => {
37
- if (type === 'phone')
38
- props.onPwdPhoneSendError?.(error as CommonMessage, authClient)
39
- if (type === 'email')
40
- props.onPwdEmailSendError?.(error as CommonMessage, authClient)
41
- }
42
-
43
- return (
44
- <div className="g2-view-container">
45
- <div className="g2-view-header">
46
- <ImagePro
47
- src={props.config?.logo}
48
- size={48}
49
- borderRadius={4}
50
- alt=""
51
- className="icon"
52
- />
53
- {/* <img src={props.config?.logo} alt="" className="icon" /> */}
54
- <div className="title">{t('login.resetPwd')}</div>
55
- <div className="title-explain">{t('user.resetpasswordText1')}</div>
56
- </div>
57
- <div className="g2-view-tabs">
58
- <ResetPassword
59
- onReset={onReset}
60
- publicConfig={publicConfig}
61
- onSend={onSend}
62
- onSendError={onSendError}
63
- />
64
- </div>
65
- <div className="g2-tips-line">
66
- <div
67
- className="link-like back-to-login"
68
- onClick={() => props.__changeModule?.(GuardModuleType.LOGIN)}
69
- >
70
- {t('common.backLoginPage')}
71
- </div>
72
- </div>
73
- </div>
74
- )
75
- }
@@ -1,32 +0,0 @@
1
- import { AuthenticationClient, CommonMessage } from '..'
2
- import { IG2Config, IG2Events, IG2FCProps, IG2FCViewProps } from '../Type'
3
-
4
- export interface ForgetPasswordEvents extends IG2Events {
5
- onPwdEmailSend?: (authClient: AuthenticationClient) => void
6
- onPwdEmailSendError?: (
7
- error: CommonMessage,
8
- authClient: AuthenticationClient
9
- ) => void
10
- onPwdPhoneSend?: (authClient: AuthenticationClient) => void
11
- onPwdPhoneSendError?: (
12
- error: CommonMessage,
13
- authClient: AuthenticationClient
14
- ) => void
15
- onPwdReset?: (authClient: AuthenticationClient) => void
16
- onPwdResetError?: (
17
- error: CommonMessage,
18
- authClient: AuthenticationClient
19
- ) => void
20
- }
21
-
22
- export interface ForgetPasswordConfig extends IG2Config {}
23
-
24
- export interface ForgetPasswordProps extends IG2FCProps, ForgetPasswordEvents {
25
- config: Partial<IG2Config>
26
- }
27
-
28
- export interface ForgetPasswordViewProps
29
- extends ForgetPasswordProps,
30
- IG2FCViewProps {
31
- config: IG2Config
32
- }
@@ -1,242 +0,0 @@
1
- import React, {
2
- useCallback,
3
- useEffect,
4
- useMemo,
5
- useReducer,
6
- useState,
7
- } from 'react'
8
- import { ConfigProvider, Modal } from 'antd'
9
-
10
- import { GuardLoginView } from '../Login'
11
-
12
- import { initAuthClient } from './authClient'
13
- import { GuardEvents, guardEventsFilter } from './event'
14
- import { initConfig } from '../_utils/config'
15
- import { insertStyles } from '../_utils'
16
- import { initGuardHttp } from '../_utils/guradHttp'
17
- import { initI18n } from '..//_utils/locales'
18
- import { IG2FCProps } from '../Type'
19
- import { getDefaultGuardLocalConfig, GuardLocalConfig } from './config'
20
- import { ShieldSpin } from '../ShieldSpin'
21
- import { GuardModuleType } from './module'
22
- import { GuardMFAView } from '../MFA'
23
- import { GuardRegisterView } from '../Register'
24
- import { GuardDownloadATView } from '../DownloadAuthenticator'
25
- import { GuardStateMachine, useHistoryHijack } from './stateMachine'
26
- import { GuardBindTotpView } from '../BindTotp'
27
- import { GuardForgetPassword } from '../ForgetPassword'
28
- import { GuardChangePassword } from '../ChangePassword'
29
- import { GuardNeedHelpView } from '../NeedHelpView'
30
- import { GuardCompleteInfoView } from '../CompleteInfo'
31
- import { GuardRecoveryCodeView } from '../RecoveryCode'
32
- import './styles.less'
33
- import { IconFont } from '../AuthingGuard/IconFont'
34
- import { GuardErrorView } from '../Error'
35
- import { GuardMode } from '..'
36
-
37
- const PREFIX_CLS = 'authing-ant'
38
-
39
- const ComponentsMapping: Record<
40
- GuardModuleType,
41
- (props: GuardViewProps) => React.ReactNode
42
- > = {
43
- [GuardModuleType.ERROR]: (props) => <GuardErrorView {...props} />,
44
- [GuardModuleType.LOGIN]: (props) => <GuardLoginView {...props} />,
45
- [GuardModuleType.MFA]: (props) => <GuardMFAView {...props} />,
46
- [GuardModuleType.REGISTER]: (props) => <GuardRegisterView {...props} />,
47
- [GuardModuleType.DOWNLOAD_AT]: (props) => <GuardDownloadATView {...props} />,
48
- [GuardModuleType.FORGET_PWD]: (props) => <GuardForgetPassword {...props} />,
49
- [GuardModuleType.CHANGE_PWD]: (props) => <GuardChangePassword {...props} />,
50
- [GuardModuleType.BIND_TOTP]: (props) => <GuardBindTotpView {...props} />,
51
- [GuardModuleType.ANY_QUESTIONS]: (props) => <GuardNeedHelpView {...props} />,
52
- [GuardModuleType.COMPLETE_INFO]: (props) => (
53
- <GuardCompleteInfoView {...props} />
54
- ),
55
- [GuardModuleType.RECOVERY_CODE]: (props) => (
56
- <GuardRecoveryCodeView {...props} />
57
- ),
58
- }
59
-
60
- export interface GuardProps extends GuardEvents, IG2FCProps {
61
- config?: Partial<GuardLocalConfig>
62
- visible?: boolean
63
- }
64
-
65
- interface GuardViewProps extends GuardProps {
66
- config: GuardLocalConfig
67
- initData: any
68
- }
69
-
70
- interface IBaseAction<T = string, P = any> {
71
- type: T & string
72
- payload?: Partial<P>
73
- }
74
-
75
- interface ModuleState {
76
- moduleName: GuardModuleType
77
- initData: any
78
- }
79
-
80
- export const Guard = (props: GuardProps) => {
81
- const { appId, config, onLoad, onLoadError } = props
82
- // 整合一下 所有的事件
83
- const events = guardEventsFilter(props)
84
-
85
- // 初始化 Loading 标识
86
- const [initSettingEnd, setInitSettingEnd] = useState(false)
87
-
88
- const [initError, setInitError] = useState(false)
89
- const [errorMessage, setErrorMessage] = useState('')
90
-
91
- // Config
92
- const [GuardLocalConfig, setGuardLocalConfig] = useState<GuardLocalConfig>(
93
- getDefaultGuardLocalConfig()
94
- )
95
-
96
- // 状态机
97
- const [
98
- guardStateMachine,
99
- setGuardStateMachine,
100
- ] = useState<GuardStateMachine>()
101
-
102
- // 劫持浏览器 History
103
- const [historyNext] = useHistoryHijack(guardStateMachine?.back)
104
-
105
- // 首页 init 数据
106
- const initState: ModuleState = {
107
- moduleName: GuardModuleType.LOGIN,
108
- initData: {},
109
- }
110
-
111
- // modules 定义
112
- const moduleReducer: (
113
- state: ModuleState,
114
- action: IBaseAction<GuardModuleType, ModuleState>
115
- ) => ModuleState = (state, { type, payload }) => {
116
- return {
117
- moduleName: type,
118
- initData: payload?.initData,
119
- }
120
- }
121
-
122
- // Modules Reducer
123
- const [moduleState, changeModule] = useReducer(moduleReducer, initState)
124
-
125
- // 切换 Module
126
- const onChangeModule = (moduleName: GuardModuleType, initData: any = {}) => {
127
- changeModule({
128
- type: moduleName,
129
- payload: {
130
- initData: initData ?? {},
131
- },
132
- })
133
- }
134
-
135
- // 初始化 Guard 一系列的东西
136
- const initGuardSetting = useCallback(async () => {
137
- try {
138
- // Config 初始化
139
- const { config: mergedConfig, publicConfig } = await initConfig(
140
- appId,
141
- config ?? {},
142
- getDefaultGuardLocalConfig()
143
- )
144
-
145
- setGuardLocalConfig(mergedConfig)
146
-
147
- // Rest 初始化
148
- const httpClient = initGuardHttp(mergedConfig?.host!)
149
- httpClient.setAppId(appId)
150
- httpClient.setUserpoolId(publicConfig.userPoolId)
151
-
152
- // TODO 国际化 这部分有点小问题 等待优化
153
- initI18n({}, mergedConfig.lang)
154
-
155
- // Authing JS SDK
156
- const authClient = initAuthClient(mergedConfig, appId)
157
-
158
- onLoad?.(authClient)
159
-
160
- // 状态机 初始化
161
- const guardStateMachine = new GuardStateMachine(onChangeModule, initState)
162
- guardStateMachine.setConfig(mergedConfig)
163
- setGuardStateMachine(guardStateMachine)
164
- } catch (error: any) {
165
- onLoadError?.(error)
166
-
167
- setErrorMessage(error.message)
168
- setInitError(true)
169
-
170
- console.error(error)
171
- } finally {
172
- // 初始化 结束
173
- setInitSettingEnd(true)
174
- }
175
- // eslint-disable-next-line react-hooks/exhaustive-deps
176
- }, [appId, config, onLoad, onLoadError])
177
-
178
- useEffect(() => {
179
- initGuardSetting()
180
- }, [initGuardSetting])
181
-
182
- useEffect(() => {
183
- insertStyles(GuardLocalConfig.contentCss)
184
- }, [GuardLocalConfig.contentCss])
185
-
186
- const renderModule = useMemo(() => {
187
- if (initSettingEnd) {
188
- if (initError)
189
- return <GuardErrorView initData={{ messages: errorMessage }} />
190
- return ComponentsMapping[moduleState.moduleName]({
191
- appId,
192
- initData: moduleState.initData,
193
- config: GuardLocalConfig,
194
- ...events,
195
- __changeModule: (moduleName, initData) => {
196
- historyNext(initData)
197
- guardStateMachine?.next(moduleName, initData)
198
- },
199
- })
200
- } else {
201
- return (
202
- <div className="g2-init-setting-loading">
203
- <ShieldSpin size={100} />
204
- </div>
205
- )
206
- }
207
- }, [
208
- appId,
209
- errorMessage,
210
- events,
211
- GuardLocalConfig,
212
- guardStateMachine,
213
- historyNext,
214
- initError,
215
- initSettingEnd,
216
- moduleState.initData,
217
- moduleState.moduleName,
218
- ])
219
-
220
- return (
221
- // TODO 这部分缺失 Loging 态
222
- <ConfigProvider prefixCls={PREFIX_CLS}>
223
- {config?.mode === GuardMode.Modal ? (
224
- <Modal
225
- className="authing-g2-render-module-modal"
226
- closeIcon={
227
- <IconFont type="authing-close-line" className="g2-modal-close" />
228
- }
229
- visible={props.visible}
230
- onCancel={props.onClose}
231
- keyboard={config.escCloseable}
232
- maskClosable={false} //点击蒙层,是否允许关闭
233
- getContainer={config.target ? config.target : false}
234
- >
235
- <div className="authing-g2-render-module">{renderModule}</div>
236
- </Modal>
237
- ) : (
238
- <div className="authing-g2-render-module">{renderModule}</div>
239
- )}
240
- </ConfigProvider>
241
- )
242
- }
@@ -1,55 +0,0 @@
1
- import { message } from 'antd'
2
- import { AuthenticationClient } from 'authing-js-sdk'
3
- import { ErrorCode } from '../_utils/GuardErrorCode'
4
-
5
- import packageConfig from '../../package.json'
6
- import { GuardLocalConfig } from './config'
7
-
8
- let authClient: AuthenticationClient
9
-
10
- export const initAuthClient = (config: GuardLocalConfig, appId: string) => {
11
- const host = config.__appHost__ ?? config.host
12
- const lang = config.lang
13
-
14
- if (!authClient) {
15
- try {
16
- authClient = new AuthenticationClient({
17
- appHost: host,
18
- appId,
19
- lang,
20
- requestFrom: `Guard-${packageConfig.framework}@${packageConfig.version}`,
21
- onError: (code, msg: any) => {
22
- if (code === 2020) {
23
- return
24
- }
25
-
26
- if ([ErrorCode.USER_EXISTENCE].includes(code)) {
27
- message.error(msg)
28
- } else {
29
- message.error(msg)
30
- }
31
-
32
- // if ([ErrorCode.OTP_MFA_CODE, ErrorCode.APP_MFA_CODE].includes(code)) {
33
- // message.info(msg)
34
- // return
35
- // }
36
- // message.error(msg)
37
- },
38
- })
39
- } catch (error) {
40
- throw error
41
- }
42
- }
43
-
44
- return authClient
45
- }
46
-
47
- export const getAuthClient = () => {
48
- if (!authClient) {
49
- throw new Error('Please initialize AuthClient')
50
- }
51
-
52
- return authClient
53
- }
54
-
55
- export const useAuthClient = () => getAuthClient()