提交 8f5cf680 编写于 作者: DCloud_JSON's avatar DCloud_JSON 提交者: study夏羽

- 优化登陆体验,账号密码登陆错误超过2次,再显示图形验证码进行人机校验。

上级 a20e4ac2
## 1.2.2(2022-05-19)
- 优化登陆体验,账号密码登陆错误超过2次,再显示图形验证码进行人机校验。
## 1.2.1(2022-05-18) ## 1.2.1(2022-05-18)
- 修复在某些情况下,微信小程序端验证码显示错误的问题 - 修复在某些情况下,微信小程序端验证码显示错误的问题
## 1.2.0(2022-05-16) ## 1.2.0(2022-05-16)
......
{ {
"name" : "uni-starter-old", "name": "",
"appid" : "__UNI__EC87F46", "appid": "请点击重新获取",
"description" : "云端一体应用快速开发模版", "description": "云端一体应用快速开发模版",
"versionName" : "1.0.0", "versionName": "1.0.0",
"versionCode" : "100", "versionCode": "100",
"transformPx" : false, "transformPx": false,
"app-plus" : { "app-plus": {
"locales" : { "locales": {
"en" : { "en": {
"name" : "uni-starter", "name": "uni-starter",
"android" : { "android": {
"strings" : { "strings": {
"CustomKey" : "CustomValue" "CustomKey": "CustomValue"
} }
},
"ios" : {
"privacyDescription" : {
"NSPhotoLibraryUsageDescription" : "access to the user’s photo library(read)"
},
"infoPlist" : {
"CustomKey" : "CustomValue"
}
}
},
"zh" : {
"name" : "统一应用基本项目"
}
}, },
"privacy" : { "ios": {
"prompt" : "template", "privacyDescription": {
"template" : { "NSPhotoLibraryUsageDescription": "access to the user’s photo library(read)"
"title" : "服务协议和隐私政策", },
"message" : "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href=\"https://ask.dcloud.net.cn/protocol.html\">《服务协议》</a>和<a href=\"https://ask.dcloud.net.cn/protocol.html\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。", "infoPlist": {
"buttonAccept" : "同意", "CustomKey": "CustomValue"
"buttonRefuse" : "暂不同意" }
} }
},
"zh": {
"name": "统一应用基本项目"
}
},
"privacy": {
"prompt": "template",
"template": {
"title": "服务协议和隐私政策",
"message": "  请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href=\"https://ask.dcloud.net.cn/protocol.html\">《服务协议》</a>和<a href=\"https://ask.dcloud.net.cn/protocol.html\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
"buttonAccept": "同意",
"buttonRefuse": "暂不同意"
}
},
"compatible": {
"ignoreVersion": true
},
"usingComponents": true,
"nvueStyleCompiler": "uni-app",
"compilerVersion": 3,
"splashscreen": {
"alwaysShowBeforeRender": false,
"waiting": true,
"autoclose": true,
"delay": 0
},
"modules": {
"Fingerprint": {
},
"Share": {
},
"OAuth": {
},
"FaceID": {
},
"Geolocation": {
},
"Bluetooth": {
},
"Push": {
},
"Maps": {
}
},
"distribute": {
"android": {
"permissions": [
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.USE_FINGERPRINT\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"abiFilters": [
"armeabi-v7a",
"arm64-v8a",
"x86"
]
},
"ios": {
"capabilities": {
"entitlements": {
"com.apple.developer.associated-domains": [
"applinks:static-76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e.bspapp.com"
]
}
}
},
"sdkConfigs": {
"oauth": {
"apple": {
},
"weixin": {
"appid": "",
"appsecret": "",
"UniversalLinks": ""
},
"univerify": {
}
}, },
"compatible" : { "ad": {
"ignoreVersion" : true
}, },
"usingComponents" : true, "share": {
"nvueStyleCompiler" : "uni-app", "weixin": {
"compilerVersion" : 3, "appid": "",
"splashscreen" : { "UniversalLinks": ""
"alwaysShowBeforeRender" : false, }
"waiting" : true,
"autoclose" : true,
"delay" : 0
}, },
"modules" : { "geolocation": {
"Fingerprint" : {}, "baidu": {
"Share" : {}, "__platform__": [
"OAuth" : {}, "ios",
"FaceID" : {}, "android"
"Geolocation" : {}, ],
"Bluetooth" : {}, "appkey_ios": "请填写地图的key",
"Push" : {}, "appkey_android": "请填写地图的key"
"Maps" : {} }
}, },
"distribute" : { "push": {
"android" : { "unipush": {
"permissions" : [ "version": "2",
"<uses-feature android:name=\"android.hardware.camera\"/>", "offline": true,
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", "meizu": {
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.USE_FINGERPRINT\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
}, },
"ios" : { "mi": {
"capabilities" : {
"entitlements" : {
"com.apple.developer.associated-domains" : [ "applinks:static-76ce2c5e-31c7-4d81-8fcf-ed1541ecbc6e.bspapp.com" ]
}
}
}, },
"sdkConfigs" : { "vivo": {
"oauth" : {
"apple" : {},
"weixin" : {
"appid" : "",
"appsecret" : "",
"UniversalLinks" : ""
},
"univerify" : {}
},
"ad" : {},
"share" : {
"weixin" : {
"appid" : "",
"UniversalLinks" : ""
}
},
"geolocation" : {
"baidu" : {
"__platform__" : [ "ios", "android" ],
"appkey_ios" : "请填写地图的key",
"appkey_android" : "请填写地图的key"
}
},
"push" : {
"unipush" : {
"version" : "2",
"offline" : true,
"meizu" : {},
"mi" : {},
"vivo" : {},
"oppo" : {},
"hms" : {}
}
},
"payment" : {},
"maps" : {}
}, },
"icons" : { "oppo": {
"android" : {
"hdpi" : "",
"xhdpi" : "",
"xxhdpi" : "",
"xxxhdpi" : ""
},
"ios" : {
"appstore" : "",
"ipad" : {
"app" : "",
"app@2x" : "",
"notification" : "",
"notification@2x" : "",
"proapp@2x" : "",
"settings" : "",
"settings@2x" : "",
"spotlight" : "",
"spotlight@2x" : ""
},
"iphone" : {
"app@2x" : "",
"app@3x" : "",
"notification@2x" : "",
"notification@3x" : "",
"settings@2x" : "",
"settings@3x" : "",
"spotlight@2x" : "",
"spotlight@3x" : ""
}
}
}, },
"splashscreen" : { "hms": {
"iosStyle" : "common",
"androidStyle" : "common",
"useOriginalMsgbox" : true
} }
}
}, },
"nvueLaunchMode" : "" "payment": {
},
"quickapp" : {},
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false,
"es6" : false
}, },
"usingComponents" : true, "maps": {
"betterScopedSlots" : true,
"permission" : {
"scope.userLocation" : {
"desc" : "演示在onShow生命周期获取地理位置"
}
} }
},
"icons": {
"android": {
"hdpi": "",
"xhdpi": "",
"xxhdpi": "",
"xxxhdpi": ""
},
"ios": {
"appstore": "",
"ipad": {
"app": "",
"app@2x": "",
"notification": "",
"notification@2x": "",
"proapp@2x": "",
"settings": "",
"settings@2x": "",
"spotlight": "",
"spotlight@2x": ""
},
"iphone": {
"app@2x": "",
"app@3x": "",
"notification@2x": "",
"notification@3x": "",
"settings@2x": "",
"settings@3x": "",
"spotlight@2x": "",
"spotlight@3x": ""
}
}
},
"splashscreen": {
"iosStyle": "common",
"androidStyle": "common",
"useOriginalMsgbox": true
}
}, },
"mp-alipay" : { "nvueLaunchMode": ""
"usingComponents" : true },
}, "quickapp": {
"mp-baidu" : { },
"usingComponents" : true "mp-weixin": {
}, "appid": "",
"mp-toutiao" : { "setting": {
"usingComponents" : true "urlCheck": false,
}, "es6": false
"uniStatistics" : {
"enable" : false
}, },
"h5" : { "usingComponents": true,
"template" : "", "betterScopedSlots": true,
"sdkConfigs" : { "permission": {
"maps" : { "scope.userLocation": {
"qqmap" : { "desc": "演示在onShow生命周期获取地理位置"
"key" : "" }
} }
} },
}, "mp-alipay": {
"router" : { "usingComponents": true
"base" : "" },
}, "mp-baidu": {
"uniStatistics" : { "usingComponents": true
"enable" : true },
"mp-toutiao": {
"usingComponents": true
},
"uniStatistics": {
"enable": false
},
"h5": {
"template": "",
"sdkConfigs": {
"maps": {
"qqmap": {
"key": ""
} }
}
},
"router": {
"base": ""
}, },
"_spaceID" : "", "uniStatistics": {
"vueVersion" : "2" "enable": true
} }
},
"_spaceID": "",
"vueVersion": "2"
}
\ No newline at end of file
{ {
"id": "uni-starter", "id": "uni-starter",
"displayName": "uni-starter", "displayName": "uni-starter",
"version": "1.2.1", "version": "1.2.2",
"description": "云端一体应用快速开发基本项目模版", "description": "云端一体应用快速开发基本项目模版",
"keywords": [ "keywords": [
"login", "login",
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<text class="title">{{$t('pwdLogin.pwdLogin')}}</text> <text class="title">{{$t('pwdLogin.pwdLogin')}}</text>
<input class="input-box" :inputBorder="false" v-model="username" :placeholder="$t('pwdLogin.placeholder')"/> <input class="input-box" :inputBorder="false" v-model="username" :placeholder="$t('pwdLogin.placeholder')"/>
<input type="password" class="input-box" :inputBorder="false" v-model="password" :placeholder="$t('pwdLogin.passwordPlaceholder')"/> <input type="password" class="input-box" :inputBorder="false" v-model="password" :placeholder="$t('pwdLogin.passwordPlaceholder')"/>
<uni-captcha scene="login" v-model="captcha"></uni-captcha> <uni-captcha v-if="needCaptcha" scene="login" v-model="captcha"></uni-captcha>
<uni-agreements class="agreement" @setAgree="agree = $event"></uni-agreements> <uni-agreements class="agreement" @setAgree="agree = $event"></uni-agreements>
<button class="send-btn" :disabled="!canLogin" :type="canLogin?'primary':'default'" <button class="send-btn" :disabled="!canLogin" :type="canLogin?'primary':'default'"
@click="pwdLogin">{{$t('pwdLogin.login')}}</button> @click="pwdLogin">{{$t('pwdLogin.login')}}</button>
...@@ -84,10 +84,10 @@ ...@@ -84,10 +84,10 @@
// this.createCaptcha() // this.createCaptcha()
}else{ }else{
uni.showModal({ uni.showModal({
title: this.$t('common.error'), title: this.$t('common').error,
content: result.msg, content: result.msg,
showCancel: false, showCancel: false,
confirmText: this.$t('common.gotIt') confirmText: this.$t('common').gotIt
}); });
} }
} }
......
## 0.6.0(2022-05-27)
- 新增:支持在`uni-config-center`中根据场景值配置
- 修复:弹窗式验证码,输入内容后点击取消,重新打开验证码的值仍然存在的问题
## 0.5.2(2022-05-19) ## 0.5.2(2022-05-19)
- 修复在Vue3的兼容问题 - 修复在Vue3的兼容问题
## 0.5.1(2022-05-18) ## 0.5.1(2022-05-18)
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<view class="popup-captcha"> <view class="popup-captcha">
<view class="content"> <view class="content">
<text class="title">{{title}}</text> <text class="title">{{title}}</text>
<uni-captcha :focus="focus" :scene="scene" v-model="val"></uni-captcha> <uni-captcha :scene="scene" v-model="val"></uni-captcha>
</view> </view>
<view class="button-box"> <view class="button-box">
<view @click="close" class="btn">取消</view> <view @click="close" class="btn">取消</view>
...@@ -14,63 +14,58 @@ ...@@ -14,63 +14,58 @@
</template> </template>
<script> <script>
export default { export default {
data() { props: {
return { modelValue:String,
focus: false value:String,
} scene: {
}, type: String,
props: { default () {
modelValue:String, return ""
value:String, }
scene: { },
type: String, title: {
default () { type: String,
return "" default () {
} return ""
}, }
title: { },
type: String, },
default () { computed:{
return "" val:{
} get(){
}, return this.value||this.modelValue
}, },
computed:{ set(value){
val:{ // console.log(value);
get(){ // TODO 兼容 vue2
return this.value||this.modelValue // #ifdef VUE2
}, this.$emit('input', value);
set(value){ // #endif
// console.log(value);
// TODO 兼容 vue2 // TODO 兼容 vue3
// #ifdef VUE2 // #ifdef VUE3
this.$emit('input', value); this.$emit('update:modelValue', value)
// #endif // #endif
}
// TODO 兼容 vue3 }
// #ifdef VUE3
this.$emit('update:modelValue', value)
// #endif
}
}
}, },
methods: { methods: {
open() { open() {
this.focus = true this.focus = true
this.val = "" this.val = ""
this.$refs.popup.open() this.$refs.popup.open()
}, },
close() { close() {
this.focus = false this.focus = false
this.$refs.popup.close() this.$refs.popup.close()
}, },
confirm() { confirm() {
if(!this.val||this.val.length < 4){ if(this.val.length < 4){
return uni.showToast({ return uni.showToast({
title: '请填写验证码', title: '请填写验证码',
icon: 'none' icon: 'none'
}); });
} }
this.close() this.close()
this.$emit('confirm') this.$emit('confirm')
...@@ -119,22 +114,22 @@ ...@@ -119,22 +114,22 @@
.button-box { .button-box {
height: 44px; height: 44px;
border-top: solid 1px #eee; border-top: solid 1px #eee;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: space-around; justify-content: space-around;
}
.button-box ,.btn{
height: 44px;
line-height: 44px;
}
.button-box .btn{
flex: 1;
margin: 1px;
text-align: center;
}
.button-box .confirm{
color: #007aff;
border-left: solid 1px #eee;
} }
</style> .button-box ,.btn{
height: 44px;
line-height: 44px;
}
.button-box .btn{
flex: 1;
margin: 1px;
text-align: center;
}
.button-box .confirm{
color: #007aff;
border-left: solid 1px #eee;
}
</style>
{ {
"id": "uni-captcha", "id": "uni-captcha",
"displayName": "uni-captcha", "displayName": "uni-captcha",
"version": "0.5.1", "version": "0.5.2",
"description": "云端一体图形验证码组件", "description": "云端一体图形验证码组件",
"keywords": [ "keywords": [
"uniCloud", "uniCloud",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册