1.2.9 • Published 11 months ago
@digitalzz/login v1.2.9
digitalzz/login
介绍
基于 react^16.8.6 的 页面级组件-登录页组件,集成手机验证码登录、短信验证码登录、郑好办扫码登录、郑政钉扫码登录功能
安装
## npm安装
npm install --save @digitalzz/login
或者
npm i @digitalzz/login -S
## yarn 安装
yarn add @digitalzz/login
使用方法
- 账号密码登录
import DzrLogin from '@digitalzz/login'
import headerLogo from '@/assets/image/main-logo.jpg'
import bgImage from '@/assets/image/login-bg.jpg'
/**
* 账号密码登录接口
*/
const pwdLogin = params => {
// 使用promise 把结果resolve,可以从success里获取该response
// 不使用promise 可直接在该函数里处理登录逻辑
return new Promise(resolve => {
// 处理输入框字段命名问题,默认用户名:loginName,密码:password
const data = {
appId: params.appId,
username: params.loginName,
password: params.password
}
// 后端api接口方法
pwdLoginApi(data).then(response => {
resolve(response)
})
})
}
export default () => {
return (
<DzrLogin
params={{ appId: 'xxx-xxx' }}
headerLogo={headerLogo}
bgImage={bgImage}
pwdLogin={pwdLogin}
loginType={['pwd']}
success={response => {
// 登录成功,取response登录接口获取的数据处理登录
}}
/>
)
}
- 短信验证码登录
import DzrLogin from '@digitalzz/login'
import headerLogo from '@/assets/image/main-logo.jpg'
import bgImage from '@/assets/image/login-bg.jpg'
/**
* 发送短信验证码
*/
const sendCode = params => {
return new Promise(resolve => {
// 后端api接口方法
sendCodeApi(data).then(response => {
resolve(response)
})
})
}
/**
* 短信验证码登录
*/
const sendCodeLogin = params => {
// 使用promise 把结果resolve,可以从success里获取该response
// 不使用promise 可直接在该函数里处理登录逻辑
return new Promise(resolve => {
// 后端api接口方法
sendCodeLoginApi(data).then(response => {
resolve(response)
})
})
}
export default () => {
return (
<DzrLogin
params={{ appId: 'xxx-xxx' }}
headerLogo={headerLogo}
bgImage={bgImage}
sendCode={sendCode}
sendCodeLogin={sendCodeLogin}
loginType={['sms']}
success={response => {
// 登录成功,取response登录接口获取的数据处理登录
}}
/>
)
}
- 郑好办扫码登录
import DzrLogin from '@digitalzz/login'
import headerLogo from '@/assets/image/main-logo.jpg'
import bgImage from '@/assets/image/login-bg.jpg'
/**
* 获取郑好办二维码
*/
const getZhbQrcode = params => {
return new Promise(resolve => {
getZhbQrcodeApi(params).then(res => {
const { code, message, data } = res
const dataObj = {
url: data,
uuid: qs.parse(data).uuid
}
const response = { code, message, data: dataObj }
resolve(response)
})
})
}
/**
* 获取郑好办扫码登录用户信息
*/
const getZhbUserInfo = params => {
// 使用promise 把结果resolve,可以从success里获取该response
// 不使用promise 可直接在该函数里处理登录逻辑
return new Promise(resolve => {
// 后端api接口方法
getZhbUserInfoApi(data).then(response => {
resolve(response)
})
})
}
export default () => {
return (
<DzrLogin
params={{ appId: 'xxx-xxx' }}
headerLogo={headerLogo}
bgImage={bgImage}
getZhbQrcode={getZhbQrcode}
getZhbUserInfo={getZhbUserInfo}
loginType={['zhb']}
success={response => {
// 登录成功,取response登录接口获取的数据处理登录
}}
/>
)
}
- 郑政钉扫码登录
import DzrLogin from '@digitalzz/login'
import headerLogo from '@/assets/image/main-logo.jpg'
import bgImage from '@/assets/image/login-bg.jpg'
/**
* 获取郑政钉扫码登录用户信息
*/
const zzdLogin = params => {
// 扫码获取code,code给后端换取token
// 使用promise 把结果resolve,可以从success里获取该response
// 不使用promise 可直接在该函数里处理登录逻辑
return new Promise(resolve => {
// 后端api接口方法
zzdLoginApi(data).then(response => {
resolve(response)
})
})
}
export default () => {
return (
<DzrLogin
params={{ appId: 'xxx-xxx' }}
headerLogo={headerLogo}
bgImage={bgImage}
zzdIframeUrl="https://login-dingding.zhengzhou.gov.cn/oauth2/auth.htm?response_type=code&client_id=zkp_dingoa&redirect_uri=http://59.207.61.4:11373&scope=get_user_info&authType=QRCODE&embedMode=true"
zzdLogin={zzdLogin}
loginType={['zzd']}
success={response => {
// 登录成功,取response登录接口获取的数据处理登录
}}
/>
)
}
Api
参数 | 描述 | 类型 | 可选值 | 必须 | 默认值 | 版本 |
---|---|---|---|---|---|---|
showHeader | 是否显示头部 | Boolean | 否 | true | ||
headerLogo | 头部 logo | String | 否 | |||
headerStyle | 头部区域样式 | Object | 否 | {} | ||
showFooter | 是否显示底部 | Boolean | 否 | true | ||
footer | 底部模板 | ReactNode | 否 | Copyright©2021 数字郑州科技有限公司 | ||
footerStyle | 底部区域样式 | Object | 否 | {} | ||
style | 页面整体样式 | Object | 否 | {} | ||
bodyStyle | 内容区域样式 | Object | 否 | {} | ||
mainTitle | 主标题 | String | 否 | 欢迎登录 | ||
bgImage | 页面背景图 | String | 否 | v1.0.3 | ||
bgColor | 页面背景色 | String | 否 | #002766 | v1.0.3 | |
loginType | 登录方式 | Arraystring | pwd 账号密码 | sms 短信验证码 | zhb 郑好办扫码 | zzd 郑政钉扫码登录 | 是 | 'zhb', 'sms', 'pwd' | v1.2.8 支持郑政钉 |
params | 预置参数 | 否 | {} | |||
sendSmsCode | 发送短信验证码方法 | Function | 否 | |||
smsLogin | 短信验证码登录方法 | Function | 否 | |||
pwdLogin | 账号密码登录方法 | Function | 否 | |||
forgetPwdLogin | 忘记密码登录方法 | Function | 否 | v1.2.5 | ||
getZhbQrcode | 获取郑好办二维码方法 | Function | loginType 为 zhb 时必要 | |||
getZhbUserInfo | 获取郑好办用户信息方法 | Function | loginType 为 zhb 时必要 | |||
success | 登录成功回调 | Function | 否 | |||
graphCodeUrl | 账号密码模式下是否显示图形验证码链接,不配置无图形验证码 | String | 否 | v1.1.4 | ||
setUuid | 配置图形验证码处理 Uuid 方法 | Function | 是 | v1.1.4 | ||
type | 组件类型 | String | login 登录 | forgetPwd 忘记密码 | 否 | login | v1.2.5 |
mainContent | 内容区域 | ReactNode | 否 | null | v1.2.5 | |
defaultLoginType | 默认登录方式 | String | pwd 账号密码 | sms 短信验证码 | zhb 郑好办扫码 | 否 | 默认 loginType 第一位 | v1.2.5 |
rules | 校验规则 | Object | 否 | v1.2.5 | ||
showForgetPwd | 是否显示忘记密码 | Boolean | 否 | false | v1.2.5 | |
theme | 主题 | String | tab,tab 切换 | tile:二维码在左侧平铺 | 否 | tab | v1.2.5 |
zhbOptions | 郑好办扫码登录配置 | Object | 否 | {} | v1.2.7 | |
pwdOptions | 账号密码登录配置 | Object | 否 | {} | v1.2.7 | |
smsOptions | 短信验证码登录配置 | Object | 否 | {} | v1.2.7 | |
forgetPwdOptions | 忘记密码配置 | Object | 否 | {} | v1.2.7 | |
tileLoginType | tile 模式下展示的登录类型 | String | zhb | zzd | 否 | v1.2.8 | |
zzdIframeUrl | 郑政钉 iframe 嵌入链接 | String | 否 | v1.2.8 | ||
zzdIcon | 郑政钉 icon 链接 | String | 否 | https://cdn.digitalcnzz.com/static/imgs/icon_zzd.png | v1.2.8 | |
zzdLogin | 郑政钉登录方法 | Function | 否 | v1.2.8 | ||
zzdOptions | 郑政钉登录配置 | Object | 否 | {} | v1.2.8 |
默认 rules
export const defaultRules = {
loginName: [{ required: true, message: '请输入账号' }],
phone: [
{ required: true, message: '请输入手机号' },
{
pattern: /^1[3-9][\d]{9}$/,
message: '请输入正确的手机号'
}
],
password: [
{ required: true, message: '请输入密码' },
{ pattern: /^((?=.*[a-zA-Z])|(?=.*\d)).{6,50}$/, message: '请输入不小于6位的密码' }
],
newPassword: [
{ required: true, message: '请输入新密码' },
{ pattern: /^((?=.*[a-zA-Z])|(?=.*\d)).{6,50}$/, message: '请输入不小于6位的新密码' }
],
captcha: [
{ required: true, message: '请输入图形验证码' },
{ pattern: /^[0-9a-zA-Z]{4,10}$/, message: '请输入图形验证码' }
],
smsCaptcha: [
{ required: true, message: '请输入短信验证码' },
{ pattern: /^[0-9]{4,8}$/, message: '请输入短信验证码' }
]
}
1.2.8
11 months ago
1.2.9
11 months ago
1.2.7
2 years ago
1.2.6
2 years ago
1.2.0
2 years ago
1.2.5
2 years ago
1.2.4
2 years ago
1.2.2
2 years ago
1.1.3
2 years ago
1.2.1
2 years ago
1.1.2
2 years ago
1.1.1
3 years ago
1.1.0
3 years ago
1.0.4
3 years ago
1.0.3
3 years ago
1.0.2
3 years ago
1.0.1
3 years ago
1.0.0
3 years ago
0.1.10
3 years ago
0.1.11
3 years ago
0.1.8
3 years ago
0.1.9
3 years ago
0.1.6
3 years ago
0.1.5
3 years ago
0.1.4
3 years ago
0.1.3
3 years ago
0.1.2
3 years ago
0.1.1
3 years ago
0.1.0
3 years ago