Files
2025-04-30 14:04:34 +08:00

186 lines
7.1 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export default {
name: 'verifyAgain',
onShow() {
console.log('开始二次验证', '用户token==>', this.$store.state.userInfo.user_token, '是否需要==>', this.$store.state.gestureAgain)
// 获取当前页面的URL
this.currentURL = this.$mp.page.route;
// 只有再用户登录 且 需要二次验证 的情况下判断才有意义
if (this.$store.state.userInfo.user_token && this.$store.state.gestureAgain) {
console.log('开始判断设备...==>', uni.getSystemInfoSync().platform)
if (uni.getSystemInfoSync().platform == "ios") {
this.appleORan == 1;
this.getingSupport(1);
console.log('设备为ios')
} else if (uni.getSystemInfoSync().platform === "android") {
this.appleORan == 0;
this.getingSupport(0);
console.log('设备为安卓')
} else {
this.appleORan == 0;
this.getingSupport(0);
console.log('设备未知,默认为安卓')
}
}
},
destroyed() {
// this.$store.commit('setGestureAgain',true);
},
data() {
return {
appleORan: null, // 判断是苹果还是安卓(苹果:1;安卓:0;)
currentURL: null, // 获取当前页面的URL
}
},
methods: {
// 获取支持的生物监测
getingSupport(type) {
console.log('appleORan==3')
let that = this;
// #ifdef H5
that.goingHandPassward();
// #endif
// #ifndef H5
uni.checkIsSupportSoterAuthentication({
success(res) {
// console.log("获取支持的生物监测成功==>", res.supportMode.indexOf("facial") != -1,that.appleORan == 1);
// 如果支持人脸识别,就优先人脸识别,否则就去指纹识别(人脸识别还需要判断是否是ios设备如果不是直接指纹。)
if (res.supportMode.indexOf("facial") != -1 && type == 1) {
console.log('进入人脸识别')
that.examineFaceID();
} else if (res.supportMode.indexOf("fingerPrint") != -1) {
console.log('进入指纹识别')
that.examineFingetprint();
} else {
that.goingHandPassward();
}
},
fail(err) {
console.log("获取支持的生物监测失败==>", err);
that.goingHandPassward();
},
});
// #endif
},
// 手势密码入口
goingHandPassward() {
// 如果保存的有密码那就是解锁模式,如果没有那就是设置模式
if (this.$store.state.userInfo.hand_password == '') {
console.log('跳转到设置手势密码')
uni.showToast({
title: this.$t('请先设置你的密码'),
duration: 500,
icon: 'none'
});
this.$urouter.redirectTo({
url: '/pages/index/setting/gesturePassword',
params: {
"type": 2,
}
})
} else {
console.log('跳转到手势密码')
// 跳转到手势密码的页面时也到带上当前的页面路径
this.$urouter.redirectTo({
url: '/pages/index/setting/gesturePassword',
params: {
"type": 1,
"currentURL": this.currentURL
}
})
}
},
// 检查是否录入指纹
examineFingetprint() {
let that = this;
uni.checkIsSoterEnrolledInDevice({
checkAuthMode: "fingerPrint",
success(res) {
console.log("检查是否录入指纹==>", res);
// 如果没有录入指纹就跳转到设备的设置页面(不过应该用不到)
if (res.isEnrolled) {
that.startFingerprint();
}
},
fail(err) {
console.log(err);
},
});
},
// 检查是否录入faceID
examineFaceID() {
let that = this;
uni.checkIsSoterEnrolledInDevice({
checkAuthMode: "facial",
success(res) {
console.log("检查是否录入faceID", res);
// 检查是否录入人脸
if (res.isEnrolled) {
that.startFaceID();
}
},
fail(err) {
console.log(err);
},
});
},
// 开始指纹识别
startFingerprint() {
let that = this;
uni.startSoterAuthentication({
requestAuthModes: ["fingerPrint"],
challenge: this.$t("要携带的参数"),
authContent: this.$t("请用指纹解锁"),
success(res) {
that.$store.commit('setGestureAgain', false);
console.log("指纹识别成功==>", res);
// 如果识别成功就
uni.showToast({
title: this.$t("识别成功"),
duration: 500,
});
},
fail(err) {
console.log(err);
uni.showToast({
title: this.$t('验证失败'),
duration: 1000,
icon: 'none'
});
setTimeout(() => {
that.$urouter.navigateBack()
}, 1000)
},
});
},
// 开始人脸识别
startFaceID() {
let that = this;
uni.startSoterAuthentication({
requestAuthModes: ["facial"],
challenge: this.$t("要携带的参数"),
authContent: this.$t("请用FaceID解锁"),
success(res) {
console.log("人脸识别成功==>", res);
that.$store.commit('setGestureAgain', false);
// 如果识别成功就
uni.showToast({
title: this.$t("识别成功"),
duration: 500,
});
},
fail(err) {
console.log(err);
uni.showToast({
title: this.$t('验证失败'),
duration: 1000,
icon: 'none'
});
setTimeout(() => {
that.$urouter.navigateBack()
}, 1000)
},
});
},
},
};