设备验证

This commit is contained in:
weiwei committed 2025-05-16 16:05:58 +08:00
1 parent c02c8a2ac8
commit 38a6f85b30
3 files changed
+33 -37

No files matched your search

@@ -1,19 +1,25 @@
import { h, render } from "vue"
import ImpModel from "./verifyDeviceImpModel.vue"
import VerifyDeviceImpModel from "./verifyDeviceImpModel.vue"
let VerifyDeviceImpModelInstance: boolean | null = null
const showVerifyDeviceImpModel = (onClose: () => any = () => null) => {
return new Promise((resolve, reject) => {
if (VerifyDeviceImpModelInstance) return
const close = () => {
render(null, document.body)
VerifyDeviceImpModelInstance = false
onClose()
}
const vnode = h(ImpModel, {
const vnode = h(VerifyDeviceImpModel, {
show: true,
showCancel: false,
close,
})
render(vnode, document.body)
VerifyDeviceImpModelInstance = true
})
}
@@ -6,7 +6,7 @@
:showCancel="showCancel"
title="您的设备需要验证"
height="650rpx"
zIndex="900"
zIndex="999"
cancelText="取消"
confirmText="确认"
@confirm=""
+24 -34
View File
@@ -4,6 +4,7 @@ import { userApi } from "../api"
import { isEmpty } from "radash"
import isDevEnv from "./isDevEnv"
import { getAppInfo } from "@@/utils/getAppInfo"
import showVerifyDeviceImpModel from "../components/verifyDeviceImpModel/verifyDeviceImpModel"
const TOKEN_KEY = constant.storageConstant.TOKEN
const USER_INFO_KEY = constant.storageConstant.USERINFO
@@ -56,51 +57,40 @@ async function handleShLogin(): Promise<boolean> {
try {
uni.showLoading({ title: "登录中...", mask: true })
const userInfo = await (window as any).CP2.getUserInfo()
if (userInfo.code == 0 || !userInfo.data.accountId || !userInfo.data.sessionId) {
uni.showToast({ title: "获取诗画用户信息失败", icon: "none" })
return false
}
// const userInfo = await (window as any).CP2.getUserInfo()
// if (userInfo.code == 0 || !userInfo.data.accountId || !userInfo.data.sessionId) {
// uni.showToast({ title: "获取诗画用户信息失败", icon: "none" })
// return false
// }
const { accountId, sessionId } = userInfo.data
const response = await userApi.authsh({ accountId, sessionId })
// const response = await userApi.authsh({ accountId: "67e790d6a95d5a7b507e53dd", sessionId: "68215b03a95d5a4899d20cb4" }) // 测试
// const { accountId, sessionId } = userInfo.data
// const response = await userApi.authsh({ accountId, sessionId })
const response = await userApi.authsh({ accountId: "67e790d6a95d5a7b507e53dd", sessionId: "68215b03a95d5a4899d20cb4" }) // 测试
if (response.code == 0) {
uni.setStorageSync(TOKEN_KEY, { accessToken: response.data.accessToken })
const { data: userData } = await userApi.userInfo()
uni.setStorageSync(USER_INFO_KEY, userData)
uni.showToast({ title: "登录成功", icon: "none" })
// if (response.data == -1) {
// uni.showToast({ title: "您的设备需要信任验证", icon: "none" })
// const pages = getCurrentPages()
// const currentPage = pages[pages.length - 1]
// const route = currentPage.route
// router.jump("/pages/user/deviceVerify", { redirect: route })
// return false
// } else {
// uni.removeStorageSync(TOKEN_KEY)
// uni.removeStorageSync(USER_INFO_KEY)
// if (response.msg == "token已失效") {
// uni.showToast({ title: "用户凭证已失效,请退出并重新进入智慧后勤应用", icon: "none", duration: 6000 })
// } else {
// uni.showToast({ title: response.msg || "登录失败", icon: "none" })
// }
// return false
// }
return true
} else {
uni.removeStorageSync(TOKEN_KEY)
uni.removeStorageSync(USER_INFO_KEY)
if (response.msg == "token已失效") {
uni.showToast({ title: "用户凭证已失效,请退出并重新进入智慧后勤应用", icon: "none", duration: 6000 })
} else {
uni.showToast({ title: response.msg || "登录失败", icon: "none" })
return false
}
if (response.data == -1) {
uni.showToast({ title: "您的设备需要信任验证", icon: "none" })
await showVerifyDeviceImpModel(async () => {
await autoLogin()
uni.reLaunch({ url: window.location.href.split("#")[1] })
})
return false
}
uni.showToast({ title: response.msg || "登录失败", icon: "none" })
return false
}
} catch (error) {
@@ -167,7 +157,7 @@ const http = new Request({
// 请求拦截器
http.interceptors.request.use(async (config) => {
console.log("config", config)
// console.log("config", config)
const tokenStorage = uni.getStorageSync(TOKEN_KEY)
const config_header: any = config.header || {}
@@ -204,7 +194,7 @@ http.interceptors.request.use(async (config) => {
// 响应拦截器
http.interceptors.response.use(
async (response) => {
console.log("response", response)
// console.log("response", response)
// 账号密码登录响应结果特殊处理
if (response.config.url === "/auth/oauth2/token") {
@@ -218,7 +208,7 @@ http.interceptors.response.use(
return Promise.resolve(response.data)
},
async (error) => {
console.log("error", error)
// console.log("error", error)
// 处理 424 错误(token过期)
if (error.statusCode === 424) {