From 251770c0570333a708e2f6d3effe809beedea742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E8=BE=89?= <13935151924@163.com> Date: Fri, 14 Nov 2025 19:05:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BA=AB=E4=BB=BD=E8=AF=81=E5=8F=B7=E7=A0=81?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apiRc/login.js | 12 ++ pages/login/h5-login.vue | 4 +- pages/login/id-card-login.vue | 24 ++-- test-idcard-login.html | 247 ++++++++++++++++++++++++++++++++++ utils/loginHelper.js | 6 +- 5 files changed, 276 insertions(+), 17 deletions(-) create mode 100644 test-idcard-login.html diff --git a/apiRc/login.js b/apiRc/login.js index 8f4b12f..c085b13 100644 --- a/apiRc/login.js +++ b/apiRc/login.js @@ -56,6 +56,18 @@ export function idCardLogin(data) { }) } +// 手机号登录 +export function phoneLogin(data) { + return request({ + method: 'post', + url: '/app/phoneLogin', + data, + headers: { + isToken: false + } + }) +} + // 获取用户详细信息 export function getInfo() { return request({ diff --git a/pages/login/h5-login.vue b/pages/login/h5-login.vue index 3dc294f..dbf8bda 100644 --- a/pages/login/h5-login.vue +++ b/pages/login/h5-login.vue @@ -198,8 +198,8 @@ const handleLogin = async () => { loading.value = true try { - // 调用账号密码登录接口 - const res = await $api.createRequest('/app/login', { + // 调用手机号登录接口 /app/phoneLogin + const res = await $api.createRequest('/app/phoneLogin', { username: form.username, password: form.password }, 'post') diff --git a/pages/login/id-card-login.vue b/pages/login/id-card-login.vue index 4396500..ecf9739 100644 --- a/pages/login/id-card-login.vue +++ b/pages/login/id-card-login.vue @@ -72,9 +72,9 @@ const handleIdCardLogin = async (idCard) => { }) // 跳转到首页 - uni.reLaunch({ - url: '/pages/index/index' - }) + // uni.reLaunch({ + // url: '/pages/index/index' + // }) } else { uni.showToast({ title: '登录失败', @@ -137,12 +137,11 @@ const getUrlParams = (url) => { } return params } - onLoad((options) => { // 处理第三方跳转过来的身份证登录 - if (options.idCardBase64) { + if (options.idCard) { // 直接通过参数传递 - processIdCardLogin(options.idCardBase64) + processIdCardLogin(options.idCard) } else { // 从当前URL中获取参数 const currentPages = getCurrentPages() @@ -150,8 +149,8 @@ onLoad((options) => { const url = currentPage.$page.fullPath const params = getUrlParams(url) - if (params.idCardBase64) { - processIdCardLogin(params.idCardBase64) + if (params.idCard) { + processIdCardLogin(params.idCard) } else { uni.showToast({ title: '缺少身份证号码参数', @@ -165,18 +164,18 @@ onLoad((options) => { }) // 处理身份证登录流程 -const processIdCardLogin = async (idCardBase64) => { +const processIdCardLogin = async (idCard) => { try { // 解码Base64身份证号码 - const idCard = decodeBase64(idCardBase64) + const decodedIdCard = decodeBase64(idCard) // 验证身份证号码格式(简单验证) - if (!idCard || idCard.length < 15) { + if (!decodedIdCard || decodedIdCard.length < 15) { throw new Error('身份证号码格式不正确') } // 调用登录接口 - await handleIdCardLogin(idCard) + await handleIdCardLogin(decodedIdCard) } catch (error) { console.error('处理身份证登录失败:', error) @@ -192,6 +191,7 @@ const processIdCardLogin = async (idCardBase64) => { onMounted(() => { // 页面挂载后的逻辑 + // 这里可以添加页面挂载后的其他逻辑 }) diff --git a/test-idcard-login.html b/test-idcard-login.html new file mode 100644 index 0000000..6c394b9 --- /dev/null +++ b/test-idcard-login.html @@ -0,0 +1,247 @@ + + +
+ + +测试 Base64 解码功能是否正常工作
+测试从 URL 中获取 idCard 参数的功能
+模拟完整的社保登录流程
+生成用于测试的社保登录链接
+