@authing/react-ui-components 3.1.1 → 3.1.3-rc.2

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 (144) hide show
  1. package/lib/index.d.ts +2573 -201
  2. package/lib/index.min.css +2 -1
  3. package/lib/index.min.js +1 -1
  4. package/lib/index.min.js.LICENSE.txt +42 -0
  5. package/lib/static/media/loading.4a67a5f3.svg +29 -0
  6. package/package.json +54 -18
  7. package/.eslintignore +0 -6
  8. package/.eslintrc.js +0 -7
  9. package/.prettierrc +0 -5
  10. package/.vscode/settings.json +0 -31
  11. package/LICENSE +0 -21
  12. package/config/antdReplacer.js +0 -51
  13. package/config/env.js +0 -106
  14. package/config/getHttpsConfig.js +0 -66
  15. package/config/jest/cssTransform.js +0 -14
  16. package/config/jest/fileTransform.js +0 -40
  17. package/config/modules.js +0 -134
  18. package/config/paths.js +0 -71
  19. package/config/pnpTs.js +0 -35
  20. package/config/webpack.config.js +0 -857
  21. package/config/webpackDevServer.config.js +0 -130
  22. package/public/favicon.ico +0 -0
  23. package/public/index.html +0 -43
  24. package/public/logo192.png +0 -0
  25. package/public/logo512.png +0 -0
  26. package/public/manifest.json +0 -25
  27. package/public/robots.txt +0 -3
  28. package/scripts/build.js +0 -212
  29. package/scripts/lib.js +0 -200
  30. package/scripts/start.js +0 -166
  31. package/scripts/test.js +0 -53
  32. package/src/common/AuthingDropdown/index.tsx +0 -52
  33. package/src/common/AuthingDropdown/style.less +0 -43
  34. package/src/common/AuthingTabs/index.tsx +0 -98
  35. package/src/common/AuthingTabs/style.less +0 -135
  36. package/src/common/CopyAbleText/index.tsx +0 -54
  37. package/src/common/CopyAbleText/style.less +0 -13
  38. package/src/common/VerifyCodeInput/index.tsx +0 -76
  39. package/src/common/VerifyCodeInput/style.less +0 -24
  40. package/src/components/AuthingGuard/AppMFALayout/index.tsx +0 -74
  41. package/src/components/AuthingGuard/AppMFALayout/style.less +0 -12
  42. package/src/components/AuthingGuard/CompleteUserInfoLayout/index.tsx +0 -29
  43. package/src/components/AuthingGuard/CompleteUserInfoLayout/style.less +0 -8
  44. package/src/components/AuthingGuard/Forms/ADLoginForm/index.tsx +0 -117
  45. package/src/components/AuthingGuard/Forms/Agreements/index.tsx +0 -81
  46. package/src/components/AuthingGuard/Forms/Agreements/style.less +0 -44
  47. package/src/components/AuthingGuard/Forms/CompleteUserInfoForm/index.tsx +0 -139
  48. package/src/components/AuthingGuard/Forms/EmailMfaVerifyForm/CheckEmailForm.tsx +0 -86
  49. package/src/components/AuthingGuard/Forms/EmailMfaVerifyForm/VerifyCodeForm.tsx +0 -116
  50. package/src/components/AuthingGuard/Forms/EmailMfaVerifyForm/index.tsx +0 -40
  51. package/src/components/AuthingGuard/Forms/EmailMfaVerifyForm/style.less +0 -0
  52. package/src/components/AuthingGuard/Forms/EmailRegisterForm/index.tsx +0 -181
  53. package/src/components/AuthingGuard/Forms/EmailRegisterForm/style.less +0 -0
  54. package/src/components/AuthingGuard/Forms/LdapLoginForm/index.tsx +0 -161
  55. package/src/components/AuthingGuard/Forms/LdapLoginForm/style.less +0 -0
  56. package/src/components/AuthingGuard/Forms/LoginFormFooter/index.tsx +0 -76
  57. package/src/components/AuthingGuard/Forms/LoginFormFooter/style.less +0 -6
  58. package/src/components/AuthingGuard/Forms/MfaResetCodeForm/Step1.tsx +0 -86
  59. package/src/components/AuthingGuard/Forms/MfaResetCodeForm/Step2.tsx +0 -53
  60. package/src/components/AuthingGuard/Forms/MfaResetCodeForm/index.tsx +0 -65
  61. package/src/components/AuthingGuard/Forms/MfaResetCodeForm/style.less +0 -20
  62. package/src/components/AuthingGuard/Forms/MfaVerifyForm/index.tsx +0 -105
  63. package/src/components/AuthingGuard/Forms/MfaVerifyForm/style.less +0 -12
  64. package/src/components/AuthingGuard/Forms/PasswordLoginForm/index.tsx +0 -261
  65. package/src/components/AuthingGuard/Forms/PhoneCodeLoginForm/index.tsx +0 -133
  66. package/src/components/AuthingGuard/Forms/PhoneRegisterForm/index.tsx +0 -202
  67. package/src/components/AuthingGuard/Forms/QrCodeLoginForm/index.tsx +0 -61
  68. package/src/components/AuthingGuard/Forms/QrCodeLoginForm/style.less +0 -14
  69. package/src/components/AuthingGuard/Forms/RegisterFormFooter/index.tsx +0 -56
  70. package/src/components/AuthingGuard/Forms/RegisterFormFooter/style.less +0 -0
  71. package/src/components/AuthingGuard/Forms/ResetPwdForm/Footer.tsx +0 -21
  72. package/src/components/AuthingGuard/Forms/ResetPwdForm/Step1.tsx +0 -86
  73. package/src/components/AuthingGuard/Forms/ResetPwdForm/Step2.tsx +0 -127
  74. package/src/components/AuthingGuard/Forms/ResetPwdForm/Step3.tsx +0 -141
  75. package/src/components/AuthingGuard/Forms/ResetPwdForm/Step4.tsx +0 -51
  76. package/src/components/AuthingGuard/Forms/ResetPwdForm/index.tsx +0 -96
  77. package/src/components/AuthingGuard/Forms/ResetPwdForm/style.less +0 -3
  78. package/src/components/AuthingGuard/Forms/SendPhoneCode/SendCodeBtn.tsx +0 -88
  79. package/src/components/AuthingGuard/Forms/SendPhoneCode/index.tsx +0 -50
  80. package/src/components/AuthingGuard/Forms/SendPhoneCode/style.less +0 -26
  81. package/src/components/AuthingGuard/Forms/SmsMfaVerifyForm/CheckPhoneForm.tsx +0 -86
  82. package/src/components/AuthingGuard/Forms/SmsMfaVerifyForm/VerifyCodeForm.tsx +0 -113
  83. package/src/components/AuthingGuard/Forms/SmsMfaVerifyForm/index.tsx +0 -40
  84. package/src/components/AuthingGuard/Forms/SmsMfaVerifyForm/style.less +0 -3
  85. package/src/components/AuthingGuard/Forms/SocialAndIdpLogin/index.tsx +0 -325
  86. package/src/components/AuthingGuard/Forms/SocialAndIdpLogin/style.less +0 -75
  87. package/src/components/AuthingGuard/Forms/UploadImage/index.tsx +0 -70
  88. package/src/components/AuthingGuard/Forms/index.ts +0 -13
  89. package/src/components/AuthingGuard/GuardLayout/index.tsx +0 -488
  90. package/src/components/AuthingGuard/GuardLayout/style.less +0 -111
  91. package/src/components/AuthingGuard/Header/index.tsx +0 -28
  92. package/src/components/AuthingGuard/Header/style.less +0 -64
  93. package/src/components/AuthingGuard/IconFont/iconfont.js +0 -74
  94. package/src/components/AuthingGuard/IconFont/index.tsx +0 -19
  95. package/src/components/AuthingGuard/IconFont/style.less +0 -6
  96. package/src/components/AuthingGuard/IconFont/svg.js +0 -2
  97. package/src/components/AuthingGuard/LoginLayout/index.tsx +0 -205
  98. package/src/components/AuthingGuard/LoginLayout/style.less +0 -0
  99. package/src/components/AuthingGuard/MfaLayout/Steps.ts +0 -4
  100. package/src/components/AuthingGuard/MfaLayout/index.tsx +0 -49
  101. package/src/components/AuthingGuard/MfaLayout/style.less +0 -3
  102. package/src/components/AuthingGuard/RegisterLayout/index.tsx +0 -89
  103. package/src/components/AuthingGuard/RegisterLayout/style.less +0 -0
  104. package/src/components/AuthingGuard/ResetPwdLayout/index.tsx +0 -20
  105. package/src/components/AuthingGuard/ToggleLang/index.tsx +0 -51
  106. package/src/components/AuthingGuard/api/appConfig.ts +0 -154
  107. package/src/components/AuthingGuard/api/http.ts +0 -88
  108. package/src/components/AuthingGuard/api/index.ts +0 -3
  109. package/src/components/AuthingGuard/api/sso.ts +0 -29
  110. package/src/components/AuthingGuard/api/userPoolConfig.ts +0 -112
  111. package/src/components/AuthingGuard/constants.ts +0 -107
  112. package/src/components/AuthingGuard/hooks/index.tsx +0 -70
  113. package/src/components/AuthingGuard/hooks/useScreenSize.tsx +0 -68
  114. package/src/components/AuthingGuard/index.tsx +0 -134
  115. package/src/components/AuthingGuard/locales/en/common.json +0 -185
  116. package/src/components/AuthingGuard/locales/en/index.ts +0 -6
  117. package/src/components/AuthingGuard/locales/en/login.json +0 -94
  118. package/src/components/AuthingGuard/locales/en/map.json +0 -4
  119. package/src/components/AuthingGuard/locales/en/user.json +0 -81
  120. package/src/components/AuthingGuard/locales/index.ts +0 -45
  121. package/src/components/AuthingGuard/locales/zh/common.json +0 -185
  122. package/src/components/AuthingGuard/locales/zh/index.ts +0 -6
  123. package/src/components/AuthingGuard/locales/zh/login.json +0 -94
  124. package/src/components/AuthingGuard/locales/zh/map.json +0 -4
  125. package/src/components/AuthingGuard/locales/zh/user.json +0 -81
  126. package/src/components/AuthingGuard/style.less +0 -104
  127. package/src/components/AuthingGuard/types/Forms.ts +0 -95
  128. package/src/components/AuthingGuard/types/GuardConfig.ts +0 -424
  129. package/src/components/AuthingGuard/types/GuardState.ts +0 -7
  130. package/src/components/AuthingGuard/types/Locales.ts +0 -12
  131. package/src/components/AuthingGuard/types/index.ts +0 -4
  132. package/src/components/index.ts +0 -7
  133. package/src/context/base.tsx +0 -28
  134. package/src/context/global/context.tsx +0 -39
  135. package/src/context/global/reducer.tsx +0 -56
  136. package/src/index.tsx +0 -142
  137. package/src/logo.svg +0 -7
  138. package/src/react-app-env.d.ts +0 -71
  139. package/src/reportWebVitals.ts +0 -15
  140. package/src/setupTests.ts +0 -5
  141. package/src/utils/clipboard.ts +0 -27
  142. package/src/utils/index.ts +0 -180
  143. package/src/utils/popupCenter.ts +0 -48
  144. package/tsconfig.json +0 -24
@@ -1,154 +0,0 @@
1
- import { requestClient } from './http'
2
- import {
3
- Lang,
4
- LoginMethods,
5
- Protocol,
6
- } from '../../../components/AuthingGuard/types'
7
- import {
8
- IAzureAdConnectionConfig,
9
- ICasConnectionConfig,
10
- ISamlConnectionConfig,
11
- OIDCConnectionConfig,
12
- SocialConnectionItem,
13
- } from './userPoolConfig'
14
- import { i18n } from '../locales'
15
-
16
- export enum ApplicationMfaType {
17
- SMS = 'SMS',
18
- EMAIL = 'EMAIL',
19
- // OTP = 'OTP',
20
- // FACE = 'FACE',
21
- // FINGERPRINT = 'FINGERPRINT',
22
- }
23
-
24
- export const ApplicationMfaTypeLabel: () => Record<
25
- ApplicationMfaType,
26
- string
27
- > = () => ({
28
- [ApplicationMfaType.SMS]: i18n.t('common.SMS'),
29
- [ApplicationMfaType.EMAIL]: i18n.t('common.EmailVerification'),
30
- })
31
-
32
- export type QrcodeTabsSettings = Record<
33
- LoginMethods,
34
- Array<{
35
- id: string
36
- title: string
37
- isDefault?: boolean
38
- }>
39
- >
40
-
41
- export interface OidcClientMetadata {
42
- grant_types: string[]
43
- client_id: string
44
- redirect_uris: string[]
45
- scope: string
46
- response_types: ResponseType[]
47
- }
48
- export interface InternalExtendsField {
49
- type: 'internal'
50
- name: string
51
- label: string
52
- inputType: string
53
- }
54
-
55
- export interface UserExtendsField {
56
- type: 'user'
57
- id: string
58
- name: string
59
- label: string
60
- inputType: string
61
- }
62
-
63
- export type ExtendsField = InternalExtendsField | UserExtendsField
64
-
65
- export interface ApplicationPasswordTabConfig {
66
- enabledLoginMethods?: PasswordLoginMethods[]
67
- }
68
-
69
- export interface Agreement {
70
- id: number
71
- title: string
72
- required: boolean
73
- lang: Lang
74
- }
75
-
76
- export type PasswordLoginMethods =
77
- | 'username-password'
78
- | 'email-password'
79
- | 'phone-password'
80
-
81
- export interface ApplicationConfig {
82
- id: string
83
- cdnBase: string
84
- userPoolId: string
85
- rootUserPoolId: string
86
- publicKey: string
87
- // 登录框自定义 css 代码
88
- css: string
89
- name: string
90
- logo: string
91
- description?: string
92
- redirectUris: string[]
93
- registerDisabled: boolean
94
- registerTabs: {
95
- list: string[]
96
- default: string
97
- title: { [x: string]: string }
98
- }
99
-
100
- qrcodeTabsSettings: QrcodeTabsSettings
101
-
102
- loginTabs: {
103
- list: string[]
104
- default: string
105
- defaultV2?: string
106
- title: { [x: string]: string }
107
- }
108
- socialConnections: SocialConnectionItem[]
109
-
110
- extendsFieldsEnabled: boolean
111
- extendsFields: ExtendsField[]
112
-
113
- identityProviders: {
114
- identifier: string
115
- protocol: Protocol
116
- displayName: string
117
- logo: string
118
- config:
119
- | ISamlConnectionConfig
120
- | OIDCConnectionConfig
121
- | ICasConnectionConfig
122
- | IAzureAdConnectionConfig
123
- }[]
124
-
125
- ssoPageComponentDisplay: {
126
- autoRegisterThenLoginHintInfo: boolean
127
- forgetPasswordBtn: boolean
128
- idpBtns: boolean
129
- loginBtn: boolean
130
- loginByPhoneCodeTab: boolean
131
- loginByUserPasswordTab: boolean
132
- loginMethodNav: boolean
133
- phoneCodeInput: boolean
134
- registerBtn: boolean
135
- registerByEmailTab: boolean
136
- registerByPhoneTab: boolean
137
- registerMethodNav: boolean
138
- socialLoginBtns: boolean
139
- userPasswordInput: boolean
140
- wxMpScanTab: boolean
141
- }
142
-
143
- protocol: Protocol
144
- oidcConfig: OidcClientMetadata
145
- passwordTabConfig: ApplicationPasswordTabConfig
146
-
147
- agreementEnabled: boolean
148
- agreements: Agreement[]
149
- }
150
-
151
- export const fetchAppConfig = (appId: string) =>
152
- requestClient.get<ApplicationConfig>(
153
- `/api/v2/applications/${appId}/public-config`
154
- )
@@ -1,88 +0,0 @@
1
- import qs from 'qs'
2
- import { i18n } from '../locales'
3
-
4
- export const requestClient = async (...rest: Parameters<typeof fetch>) => {
5
- const res = await fetch(...rest)
6
- return res.json()
7
- }
8
-
9
- export interface AuthingResponse<T = any> {
10
- code: number
11
- message?: string
12
- data?: T
13
- }
14
-
15
- requestClient.get = async <T>(
16
- path: string,
17
- query: Record<string, any> = {},
18
- init?: RequestInit
19
- ): Promise<AuthingResponse<T>> => {
20
- const headers: Record<string, any> = {
21
- ...init?.headers,
22
- 'Content-Type': 'application/json',
23
- [requestClient.langHeader]: i18n.language,
24
- }
25
-
26
- if (requestClient.tenantId !== '')
27
- headers[requestClient.tenantHeader] = requestClient.tenantId
28
-
29
- const res = await fetch(
30
- `${requestClient.baseUrl}${path}${qs.stringify(query, {
31
- addQueryPrefix: true,
32
- })}`,
33
- {
34
- ...init,
35
- credentials: 'include',
36
- headers,
37
- }
38
- )
39
-
40
- return res.json()
41
- }
42
-
43
- requestClient.post = async <T>(
44
- path: string,
45
- data: any,
46
- config?: {
47
- headers: any
48
- }
49
- ): Promise<AuthingResponse<T>> => {
50
- const headers: Record<string, any> = {
51
- ...config?.headers,
52
- 'Content-Type': 'application/json',
53
- [requestClient.langHeader]: i18n.language,
54
- }
55
-
56
- if (requestClient.tenantId !== '')
57
- headers[requestClient.tenantHeader] = requestClient.tenantId
58
-
59
- const res = await fetch(`${requestClient.baseUrl}${path}`, {
60
- method: 'POST',
61
- body: JSON.stringify(data),
62
- credentials: 'include',
63
- headers: headers,
64
- })
65
- return res.json()
66
- }
67
-
68
- requestClient.baseUrl = ''
69
- requestClient.setBaseUrl = (base: string) => {
70
- requestClient.baseUrl = base.replace(/\/$/, '')
71
- }
72
- const DEFAULT_LANG_HEADER = 'x-authing-lang'
73
- const DEFAULT_TENANT_HEADER = 'x-authing-app-tenant-idåå'
74
- requestClient.langHeader = DEFAULT_LANG_HEADER
75
- requestClient.tenantHeader = DEFAULT_TENANT_HEADER
76
- requestClient.tenantId = ''
77
-
78
- requestClient.setLangHeader = (key: string | undefined) => {
79
- requestClient.langHeader = key || DEFAULT_LANG_HEADER
80
- }
81
-
82
- requestClient.setTenantHeader = (key: string | undefined) => {
83
- requestClient.tenantHeader = key || DEFAULT_LANG_HEADER
84
- }
85
-
86
- requestClient.setTenantId = (tenantId: string) => {
87
- requestClient.tenantId = tenantId
88
- }
@@ -1,3 +0,0 @@
1
- export * from './sso'
2
- export * from './appConfig'
3
- export * from './userPoolConfig'
@@ -1,29 +0,0 @@
1
- import { User } from '../types'
2
- import { requestClient } from './http'
3
-
4
- export interface SessionData {
5
- session: null | {
6
- _id: string
7
- cookie: {
8
- originalMaxAge: number
9
- expires: Date
10
- secure: boolean
11
- httpOnly: boolean
12
- path: string
13
- sameSite: string
14
- }
15
- appId?: string
16
- type: string
17
- userId: string
18
- }
19
- userInfo?: User
20
- }
21
-
22
- export const trackSession = () =>
23
- requestClient.get<SessionData>(
24
- `/cas/session`,
25
- {},
26
- {
27
- credentials: 'include',
28
- }
29
- )
@@ -1,112 +0,0 @@
1
- import { Lang, Protocol } from '../../../components/AuthingGuard/types'
2
- import { SocialConnectionProvider } from 'authing-js-sdk'
3
-
4
- export interface OIDCConnectionConfig {
5
- issuerUrl: string
6
- authorizationEdpoint: string
7
- responseType: string
8
- mode: OIDCConnectionMode
9
- clientId: string
10
- clientSecret: string
11
- scopes: string
12
- redirectUri: string
13
- }
14
-
15
- export interface IOAuthConnectionConfig {
16
- authEndPoint: string
17
- tokenEndPoint: string
18
- scope: string
19
- clientId: string
20
- clientSecret: string
21
- authUrlTemplate: string
22
- codeToTokenScript: string
23
- tokenToUserInfoScript: string
24
- tokenToUserInfoScriptFuncId: string
25
- codeToTokenScriptFuncId: string
26
- authUrl?: string // 根据模板拼接出来的授权 url
27
- }
28
-
29
- export interface IAzureAdConnectionConfig {
30
- microsoftAzureAdDomain: string
31
- clientId: string
32
- syncUserProfileOnLogin: string
33
- emailVerifiedDefault: boolean
34
- authorizationUrl: string
35
- callbackUrl: string
36
- }
37
-
38
- export enum OIDCConnectionMode {
39
- FRONT_CHANNEL = 'FRONT_CHANNEL',
40
- BACK_CHANNEL = 'BACK_CHANNEL',
41
- }
42
-
43
- export interface ISamlConnectionConfig {
44
- signInEndPoint: string
45
- samlRequest?: string
46
-
47
- // saml assertion 验签公钥
48
-
49
- samlIdpCert: string
50
-
51
- // saml request 验签公钥
52
-
53
- samlSpCert: string
54
-
55
- // saml request 签名私钥
56
-
57
- samlSpKey: string
58
-
59
- signOutEndPoint: string
60
-
61
- signSamlRequest: boolean
62
-
63
- signatureAlgorithm: string
64
-
65
- digestAlgorithm: string
66
-
67
- protocolBinding: string
68
- }
69
-
70
- export interface ICasConnectionConfig {
71
- casConnectionLoginUrl: string
72
- }
73
- export interface SocialConnectionItem {
74
- name: string
75
- displayName: string
76
- logo: string
77
- description: string
78
- identifier: string
79
- provider: SocialConnectionProvider
80
- authorizationUrl: string
81
- tooltip: Record<Lang, string>
82
- }
83
-
84
- export interface EnterpriseConnectionItem {
85
- id: string
86
- createdAt: Date
87
- updatedAt: Date
88
- userPoolId: string
89
- protocol: Protocol
90
- identifier: string
91
- displayName: string
92
- logo: string
93
- enabled: boolean
94
- config:
95
- | OIDCConnectionConfig
96
- | ISamlConnectionConfig
97
- | ICasConnectionConfig
98
- | IAzureAdConnectionConfig
99
- | IOAuthConnectionConfig
100
- }
101
-
102
- export interface UserPoolConfig {
103
- name: string
104
- logo: string
105
- socialConnections: SocialConnectionItem[]
106
- enterpriseConnections: EnterpriseConnectionItem[]
107
- }
108
-
109
- // export const fetchUserPoolConfig = (userPoolId: string) =>
110
- // requestClient.get<UserPoolConfig>(
111
- // `/api/v2/userpools/${userPoolId}/public-config`
112
- // )
@@ -1,107 +0,0 @@
1
- import {
2
- GuardMode,
3
- UserConfig,
4
- GuardScenes,
5
- LoginMethods,
6
- RegisterMethods,
7
- LocalesConfig,
8
- } from '../../components/AuthingGuard/types'
9
- import { i18n } from './locales'
10
-
11
- // 个人版 OTP MFA 的 error code
12
- export const OTP_MFA_CODE = 1635
13
- // 企业版手机和短信验证吗 MFA 的 error code
14
- export const APP_MFA_CODE = 1636
15
-
16
- // 需要验证吗
17
- export const NEED_CAPTCHA = 2000
18
-
19
- export const LOGIN_METHODS_MAP = () => ({
20
- [LoginMethods.Password]: i18n.t('login.pwdLogin'),
21
- [LoginMethods.PhoneCode]: i18n.t('login.verifyCodeLogin'),
22
- [LoginMethods.AppQr]: i18n.t('login.appScanLogin'),
23
- [LoginMethods.WxMinQr]: i18n.t('login.scanLogin'),
24
- [LoginMethods.LDAP]: i18n.t('login.ldapLogin'),
25
- [LoginMethods.AD]: i18n.t('login.adLogin'),
26
- [LoginMethods.WechatMpQrcode]: i18n.t('login.wechatmpQrcode'),
27
- })
28
-
29
- export const REGISTER_METHODS_MAP = () => ({
30
- [RegisterMethods.Email]: i18n.t('login.emailRegister'),
31
- [RegisterMethods.Phone]: i18n.t('login.phoneRegister'),
32
- })
33
-
34
- // 某些社会化登录会在 tabs 中显示,或者无法在 Guard 中使用,所以底部不显示了
35
- export const HIDE_SOCIALS = [
36
- 'wechat:miniprogram:app-launch',
37
- 'wechat:miniprogram:qrconnect',
38
- 'wechat:webpage-authorization',
39
- 'wechat:miniprogram:default',
40
- 'wechatwork:addressbook',
41
- 'wechat:mobile',
42
- ]
43
-
44
- // 企业版 MFA 支持的方式
45
- export enum ApplicationMfaType {
46
- SMS = 'SMS',
47
- EMAIL = 'EMAIL',
48
- // OTP = 'OTP',
49
- // FACE = 'FACE',
50
- // FINGERPRINT = 'FINGERPRINT',
51
- }
52
-
53
- export const defaultGuardConfig: Partial<UserConfig> = {
54
- isSSO: false,
55
- title: 'Authing',
56
- text: {
57
- loginTabs: LOGIN_METHODS_MAP(),
58
- loginBtn: {
59
- normal: '登录',
60
- loading: '登录',
61
- },
62
- registerBtn: {
63
- normal: '注册',
64
- loading: '注册',
65
- },
66
- },
67
- escCloseable: true,
68
- autoRegister: false,
69
- clickCloseable: true,
70
- mode: GuardMode.Normal,
71
- disableRegister: false,
72
- disableResetPwd: false,
73
- defaultScenes: GuardScenes.Login,
74
- appHost: 'https://core.authing.cn',
75
- defaultLoginMethod: LoginMethods.Password,
76
- defaultRegisterMethod: RegisterMethods.Email,
77
- loginMethods: [LoginMethods.Password, LoginMethods.PhoneCode],
78
- registerMethods: [RegisterMethods.Email, RegisterMethods.Phone],
79
- logo:
80
- 'https://files.authing.co/user-contents/photos/0a4c99ff-b8ce-4030-aaaf-584c807cb21c.png',
81
- passwordLoginMethods: [
82
- 'email-password',
83
- 'username-password',
84
- 'phone-password',
85
- ],
86
- }
87
-
88
- export const defaultLocalesConfig: LocalesConfig = {
89
- defaultLang: 'zh-CN',
90
- isShowChange: false,
91
- }
92
-
93
- export const defaultHeaders: {
94
- 'userpool-id': string
95
- 'app-id': string
96
- 'sdk-version': string
97
- 'request-from': string
98
- 'tenant-id': string
99
- lang: string
100
- } = {
101
- 'userpool-id': 'x-authing-userpool-id',
102
- 'app-id': 'x-authing-app-id',
103
- 'tenant-id': 'x-authing-app-tenant-id',
104
- 'request-from': 'x-authing-request-from',
105
- 'sdk-version': 'x-authing-sdk-version',
106
- lang: 'x-authing-lang',
107
- }
@@ -1,70 +0,0 @@
1
- import {
2
- AuthenticationClient,
3
- AuthenticationClientOptions,
4
- } from 'authing-js-sdk'
5
- import { defaultGuardConfig } from '../constants'
6
-
7
- let authClient: AuthenticationClient | null = null
8
-
9
- export interface AuthClientConfig extends AuthenticationClientOptions {
10
- /**
11
- * @deprecated 使用 appHost
12
- */
13
- appDomain?: string
14
- /**
15
- * @deprecated 无需传入
16
- */
17
- isSSO?: boolean
18
- /**
19
- * @deprecated 使用 appHost
20
- */
21
- host?: string
22
- }
23
-
24
- export const initAuthClient = (config: AuthClientConfig) => {
25
- if (authClient) {
26
- return authClient
27
- }
28
-
29
- const { appHost, appDomain, host } = config
30
-
31
- /**
32
- * 兼容之前的参数
33
- */
34
- let realHost
35
- if (appHost) {
36
- realHost = appHost
37
- } else if (appDomain) {
38
- const parsedUrl = new URL(host || defaultGuardConfig.appHost!)
39
- realHost = `${parsedUrl.protocol}//${appDomain}${
40
- parsedUrl.port ? ':' + parsedUrl.port : ''
41
- }`
42
- } else if (host) {
43
- realHost = host
44
- } else {
45
- realHost = defaultGuardConfig.appHost
46
- }
47
- config.appHost = realHost!
48
-
49
- authClient = new AuthenticationClient(config)
50
-
51
- return authClient
52
- }
53
-
54
- export const useAuthing = (config?: AuthClientConfig) => {
55
- return { authClient: getAuthClient(config) }
56
- }
57
-
58
- export const getAuthClient = (config?: AuthClientConfig) => {
59
- if (!authClient && !config) {
60
- throw new Error(
61
- 'Please `initAuthClient` first or pass `AuthClientConfig` to useAuthing.'
62
- )
63
- }
64
-
65
- if (config) {
66
- initAuthClient(config)
67
- }
68
-
69
- return authClient
70
- }
@@ -1,68 +0,0 @@
1
- import { useState, useEffect } from 'react'
2
- // import { inRange, debounce } from 'lodash'
3
-
4
- function debounce(fn: Function, delay: number, immediate = true) {
5
- let timer: any
6
-
7
- return function (this: any) {
8
- let context = this
9
- let args = arguments
10
- timer && clearTimeout(timer)
11
-
12
- if (immediate && !timer) {
13
- fn.apply(context, args)
14
- }
15
-
16
- timer = setTimeout(function () {
17
- fn.apply(context, args)
18
- }, delay)
19
- }
20
- }
21
-
22
- function inRange(n: number, start: number, end?: number): boolean {
23
- if (end || end === 0) {
24
- return n >= start && n <= end
25
- }
26
- return n >= start
27
- }
28
-
29
- export enum ScreenSize {
30
- Mobile = 'mobile',
31
- Desktop = 'desktop',
32
- }
33
- export const SCREEN_SIZE_RANG: {
34
- size: ScreenSize
35
- range: [number, number]
36
- }[] = [
37
- {
38
- size: ScreenSize.Mobile,
39
- range: [0, 719],
40
- },
41
- {
42
- size: ScreenSize.Desktop,
43
- range: [720, Infinity],
44
- },
45
- ]
46
-
47
- export const getScreenSize = () => {
48
- const viewportWidth = document.body.clientWidth
49
- return (
50
- SCREEN_SIZE_RANG.find((item) => inRange(viewportWidth, ...item.range))
51
- ?.size ?? ScreenSize.Desktop
52
- )
53
- }
54
-
55
- export const useScreenSize = () => {
56
- const [screenSize, setScreenSize] = useState(getScreenSize)
57
-
58
- useEffect(() => {
59
- const onResize = debounce(() => {
60
- setScreenSize(getScreenSize())
61
- }, 200)
62
- window.addEventListener('resize', onResize)
63
-
64
- return () => window.removeEventListener('resize', onResize)
65
- }, [])
66
-
67
- return [screenSize]
68
- }