Skip to content

Commit

Permalink
feat: 登录注册协议选择状态
Browse files Browse the repository at this point in the history
  • Loading branch information
zhaojingjing committed Apr 22, 2024
1 parent 51357e0 commit 3be8409
Show file tree
Hide file tree
Showing 12 changed files with 151 additions and 28 deletions.
17 changes: 15 additions & 2 deletions packages/guard-core-v4/src/Login/core/withAD.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,10 @@ export const LoginWithAD = (props: LoginWithADProps) => {

const [acceptedAgreements, setAcceptedAgreements] = useState(false)

const [acceptedAgreementIds, setAcceptedAgreementIds] = useState<
(string | number)[]
>([])

const [validated, setValidated] = useState(false)

const robotVerify = useRobotVerify()
Expand Down Expand Up @@ -161,7 +165,8 @@ export const LoginWithAD = (props: LoginWithADProps) => {
body: JSON.stringify({
username,
password: encryptPassword,
captchaCode
captchaCode,
agreementIds: agreements.length ? acceptedAgreementIds : undefined
}),
credentials: 'include',
headers: {
Expand Down Expand Up @@ -251,6 +256,14 @@ export const LoginWithAD = (props: LoginWithADProps) => {
// })
}

const onAgreementsChange = (
value: boolean,
acceptAgreement: (string | number)[]
) => {
setAcceptedAgreements(value)
setAcceptedAgreementIds(acceptAgreement)
}

useEffect(() => {
setShowCaptcha(robotVerify === 'always_enable')
if (robotVerify === 'always_enable') {
Expand Down Expand Up @@ -335,7 +348,7 @@ export const LoginWithAD = (props: LoginWithADProps) => {
)}
{Boolean(agreements?.length) && (
<Agreements
onChange={setAcceptedAgreements}
onChange={onAgreementsChange}
agreements={agreements}
showError={validated}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ export function BeforeLogin(props: BeforeLoginProps) {

const [acceptedAgreements, setAcceptedAgreements] = useState(false)

const [acceptedAgreementIds, setAcceptedAgreementIds] = useState<
(string | number)[]
>([])

const [validated, setValidated] = useState(false)

let submitButtonRef = useRef<any>(null)
Expand Down Expand Up @@ -96,7 +100,8 @@ export function BeforeLogin(props: BeforeLoginProps) {
message: _message,
data
} = await signinByPush({
account
account,
agreementIds: agreements.length ? acceptedAgreementIds : undefined
})

if (statusCode === 200) {
Expand Down Expand Up @@ -148,6 +153,14 @@ export function BeforeLogin(props: BeforeLoginProps) {
t
])

const onAgreementsChange = (
value: boolean,
acceptAgreement: (string | number)[]
) => {
setAcceptedAgreements(value)
setAcceptedAgreementIds(acceptAgreement)
}

return (
<div>
{!pushLoginStatus && (
Expand Down Expand Up @@ -184,7 +197,7 @@ export function BeforeLogin(props: BeforeLoginProps) {
<Agreements
agreements={agreements}
showError={validated}
onChange={setAcceptedAgreements}
onChange={onAgreementsChange}
/>
)}
<Form.Item className="authing-g2-sumbit-form">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,11 @@ export function LoginWithAuthingOtpPush(props: LoginWithAuthingOtpPushProps) {
}, [])

const signinByPush = async (props: OnLoginProps) => {
const { account } = props
const { account, agreementIds } = props
const url = '/api/v3/signin-by-push'
const body = {
account
account,
agreementIds
}
return await post(url, body)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export interface CheckPushCodeStatusProps {

export interface OnLoginProps {
account: string
agreementIds?: (string | number)[]
}

export type LoginStatus = 'before' | 'pending'
Expand Down
17 changes: 15 additions & 2 deletions packages/guard-core-v4/src/Login/core/withLDAP.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@ export const LoginWithLDAP = (props: LoginWithLDAPProps) => {

const [acceptedAgreements, setAcceptedAgreements] = useState(false)

const [acceptedAgreementIds, setAcceptedAgreementIds] = useState<
(string | number)[]
>([])

const { isPhoneMedia } = useMediaSize()

const [validated, setValidated] = useState(false)
Expand Down Expand Up @@ -123,7 +127,8 @@ export const LoginWithLDAP = (props: LoginWithLDAPProps) => {
message: tips
} = await post('/api/v2/ldap/verify-user', {
username,
password
password,
agreementIds: agreements.length ? acceptedAgreementIds : undefined
})

submitButtonRef.current.onSpin(false)
Expand Down Expand Up @@ -195,6 +200,14 @@ export const LoginWithLDAP = (props: LoginWithLDAPProps) => {
// })
}

const onAgreementsChange = (
value: boolean,
acceptAgreement: (string | number)[]
) => {
setAcceptedAgreements(value)
setAcceptedAgreementIds(acceptAgreement)
}

return (
<div className="authing-g2-login-ldap">
<Form
Expand Down Expand Up @@ -270,7 +283,7 @@ export const LoginWithLDAP = (props: LoginWithLDAPProps) => {
)}
{Boolean(agreements?.length) && (
<Agreements
onChange={setAcceptedAgreements}
onChange={onAgreementsChange}
agreements={agreements}
showError={validated}
/>
Expand Down
21 changes: 18 additions & 3 deletions packages/guard-core-v4/src/Login/core/withPassword/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ export const LoginWithPassword = (props: LoginWithPasswordProps) => {
})

const [acceptedAgreements, setAcceptedAgreements] = useState(false)
const acceptedAgreementIds = useRef<(string | number)[]>([])

const { isPhoneMedia } = useMediaSize()
const [validated, setValidated] = useState(false)

Expand Down Expand Up @@ -165,7 +167,10 @@ export const LoginWithPassword = (props: LoginWithPasswordProps) => {
? getUserRegisterParams(['login_page_context'])
: undefined,
autoRegister: props.autoRegister,
withCustomData: false
withCustomData: false,
agreementIds: agreements.length
? acceptedAgreementIds.current
: undefined
}
const res = await post(url, body)

Expand All @@ -176,7 +181,9 @@ export const LoginWithPassword = (props: LoginWithPasswordProps) => {
encrypt,
post,
props,
publicConfig?.mergeAdAndAccountPasswordLogin
publicConfig?.mergeAdAndAccountPasswordLogin,
acceptedAgreementIds,
agreements
]
)

Expand Down Expand Up @@ -327,6 +334,14 @@ export const LoginWithPassword = (props: LoginWithPasswordProps) => {
t
])

const onAgreementsChange = (
value: boolean,
acceptAgreement: (string | number)[]
) => {
setAcceptedAgreements(value)
acceptedAgreementIds.current = acceptAgreement
}

return (
<div className="authing-g2-login-password">
<Form
Expand Down Expand Up @@ -430,7 +445,7 @@ export const LoginWithPassword = (props: LoginWithPasswordProps) => {

{Boolean(agreements?.length) && (
<Agreements
onChange={setAcceptedAgreements}
onChange={onAgreementsChange}
agreements={agreements}
showError={validated}
/>
Expand Down
23 changes: 18 additions & 5 deletions packages/guard-core-v4/src/Login/core/withVerifyCode/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@ const LoginWithVerifyCode = (props: any) => {

const acceptedAgreements = useRef(false)

const acceptedAgreementIds = useRef<(string | number)[]>([])

const [validated, setValidated] = useState(false)

const [identify, setIdentify] = useState('')
Expand Down Expand Up @@ -296,7 +298,8 @@ const LoginWithVerifyCode = (props: any) => {
? getUserRegisterParams(['login_page_context'])
: undefined,
autoRegister: autoRegister,
withCustomData: false
withCustomData: false,
agreementIds: agreements.length ? acceptedAgreementIds.current : undefined
}

if (publicConfig && publicConfig.internationalSmsConfig?.enabled)
Expand Down Expand Up @@ -330,7 +333,8 @@ const LoginWithVerifyCode = (props: any) => {
? getUserRegisterParams(['login_page_context'])
: undefined,
autoRegister: autoRegister,
withCustomData: false
withCustomData: false,
agreementIds: agreements.length ? acceptedAgreementIds.current : undefined
}
const {
code,
Expand Down Expand Up @@ -464,6 +468,14 @@ const LoginWithVerifyCode = (props: any) => {
}
}

const onAgreementsChange = (
value: boolean,
acceptAgreement: (string | number)[]
) => {
acceptedAgreements.current = value
acceptedAgreementIds.current = acceptAgreement
}

const phone = getPhoneInLoginPageContext()

return (
Expand Down Expand Up @@ -549,9 +561,10 @@ const LoginWithVerifyCode = (props: any) => {
</Form.Item>
{Boolean(agreements?.length) && (
<Agreements
onChange={val => {
acceptedAgreements.current = val
}}
// onChange={val => {
// acceptedAgreements.current = val
// }}
onChange={onAgreementsChange}
agreements={agreements}
showError={validated}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const { useState, useMemo, useEffect } = React

export interface AgreementsProps {
value?: boolean
onChange?: (value: boolean) => void
onChange?: (value: boolean, acceptList: (string | number)[]) => void
style?: React.CSSProperties
agreements: Agreement[]
showError?: boolean
Expand Down Expand Up @@ -60,8 +60,8 @@ export const Agreements: React.FC<AgreementsProps> = ({
}, [acceptList, agreements])

useEffect(() => {
onChange(isAccept)
}, [isAccept, onChange])
onChange(isAccept, acceptList)
}, [isAccept, onChange, acceptList])

return (
<div
Expand Down
20 changes: 17 additions & 3 deletions packages/guard-core-v4/src/Register/core/WithCode.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,8 @@ export const RegisterWithCode: React.FC<RegisterWithCodeProps> = ({

const [acceptedAgreements, setAcceptedAgreements] = useState(false)

const acceptedAgreementIds = useRef<(string | number)[]>([])

const [validated, setValidated] = useState(false)

// 区号 默认
Expand Down Expand Up @@ -243,7 +245,10 @@ export const RegisterWithCode: React.FC<RegisterWithCodeProps> = ({
? JSON.stringify(getUserRegisterParams(['login_page_context']))
: undefined,
context: JSON.stringify(context),
emailToken: undefined
emailToken: undefined,
agreementIds: agreements.length
? acceptedAgreementIds.current
: undefined
}
// onRegisterSuccess 注册成功后需要回到对应的登录页面
const onRegisterSuccessIntercept = (user: any) => {
Expand Down Expand Up @@ -357,7 +362,8 @@ export const RegisterWithCode: React.FC<RegisterWithCodeProps> = ({
isPhoneChangeComplete,
onRegisterSuccess,
onRegisterFailed,
publicConfig?.enableCompletePassword
publicConfig?.enableCompletePassword,
acceptedAgreementIds
]
)

Expand Down Expand Up @@ -662,6 +668,14 @@ export const RegisterWithCode: React.FC<RegisterWithCodeProps> = ({
[areaCode, form]
)

const onAgreementsChange = (
value: boolean,
acceptAgreement: (string | number)[]
) => {
setAcceptedAgreements(value)
acceptedAgreementIds.current = acceptAgreement
}

return (
<div className="authing-g2-register-email">
<Form
Expand Down Expand Up @@ -747,7 +761,7 @@ export const RegisterWithCode: React.FC<RegisterWithCodeProps> = ({
</Form.Item>
{Boolean(agreements?.length) && (
<Agreements
onChange={setAcceptedAgreements}
onChange={onAgreementsChange}
agreements={agreements}
showError={validated}
/>
Expand Down
18 changes: 16 additions & 2 deletions packages/guard-core-v4/src/Register/core/WithEmail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ export const RegisterWithEmail: React.FC<RegisterWithEmailProps> = ({

const [acceptedAgreements, setAcceptedAgreements] = useState(false)

const acceptedAgreementIds = useRef<(string | number)[]>([])

const [validated, setValidated] = useState(false)

const [verifyCodeUrl, setVerifyCodeUrl] = useState('')
Expand Down Expand Up @@ -198,7 +200,10 @@ export const RegisterWithEmail: React.FC<RegisterWithEmailProps> = ({
? JSON.stringify(getUserRegisterParams(['login_page_context']))
: undefined,
context: JSON.stringify(context),
phoneToken
phoneToken,
agreementIds: agreements.length
? acceptedAgreementIds.current
: undefined
}

// onRegisterSuccess 注册成功后需要回到对应的登录页面
Expand Down Expand Up @@ -459,6 +464,15 @@ export const RegisterWithEmail: React.FC<RegisterWithEmailProps> = ({
verifyCodeUrl,
publicConfig?.internationalSmsConfig?.enabled
])

const onAgreementsChange = (
value: boolean,
acceptAgreement: (string | number)[]
) => {
setAcceptedAgreements(value)
acceptedAgreementIds.current = acceptAgreement
}

return (
<div className="authing-g2-register-email">
<Form
Expand Down Expand Up @@ -558,7 +572,7 @@ export const RegisterWithEmail: React.FC<RegisterWithEmailProps> = ({
</CustomFormItem.Password>
{Boolean(agreements?.length) && (
<Agreements
onChange={setAcceptedAgreements}
onChange={onAgreementsChange}
agreements={agreements}
showError={validated}
/>
Expand Down
Loading

0 comments on commit 3be8409

Please sign in to comment.