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 @@ + + + + + + 社保登录流程测试 + + + +
+

社保登录流程测试

+ +
+

测试用例 1: Base64 解码测试

+

测试 Base64 解码功能是否正常工作

+
+ // 测试数据: "142634199305163418" 的 Base64 编码
+ // 原始身份证号: 142634199305163418
+ // Base64 编码: MTQyNjM0MTk5MzA1MTYzNDE4 +
+ +
+
+ +
+

测试用例 2: URL 参数解析测试

+

测试从 URL 中获取 idCard 参数的功能

+
+ // 测试 URL: http://localhost:5173/ks_app/#/pages/login/id-card-login?idCard=MTQyNjM0MTk5MzA1MTYzNDE4
+ // 预期结果: 成功获取到 idCard 参数值 +
+ +
+
+ +
+

测试用例 3: 完整登录流程测试

+

模拟完整的社保登录流程

+
+ 1. 从 URL 获取 idCard 参数 (Base64 编码)
+ 2. Base64 解码得到明文身份证号
+ 3. 调用 /app/idCardLogin 接口
+ 4. 处理登录结果 +
+ +
+
+ +
+

测试用例 4: 生成测试链接

+

生成用于测试的社保登录链接

+
+ 身份证号: +
+ +
+
+
+ + + + diff --git a/utils/loginHelper.js b/utils/loginHelper.js index 11ae3ef..77ce8b3 100644 --- a/utils/loginHelper.js +++ b/utils/loginHelper.js @@ -107,9 +107,9 @@ export function parseIdCardLoginParams(url) { const params = {}; // 获取身份证号码base64参数 - const idCardBase64 = urlObj.searchParams.get('idCardBase64'); - if (idCardBase64) { - params.idCardBase64 = idCardBase64; + const idCard = urlObj.searchParams.get('idCard'); + if (idCard) { + params.idCard = idCard; } // 获取重定向URL