Files
ks-app-employment-service/登录系统实现总结.md
2025-11-14 18:10:59 +08:00

4.4 KiB
Raw Blame History

多端登录系统实现总结

项目概述

已成功完成多端登录系统的重构支持小程序端、H5端和App端的差异化登录方式。

实现功能

1. 多端登录策略

  • 小程序端 (MP-WEIXIN): 微信授权登录
  • H5端 (H5): 账号密码登录 + 身份证号码登录
  • App端 (APP-PLUS): 微信授权登录

2. 新增页面

2.1 H5账号密码登录页面 (pages/login/h5-login.vue)

  • 账号密码输入表单
  • 登录按钮
  • 跳转到身份证号码登录的入口
  • 美观的UI设计渐变背景和圆角卡片

2.2 身份证号码登录页面 (pages/login/id-card-login.vue)

  • Loading页面设计显示"登录中,请稍候..."
  • 支持从URL参数获取Base64编码的身份证号码
  • 多端Base64解码支持
    • H5: atob()
    • 小程序: uni.base64ToArrayBuffer()
    • App: plus.base64.decode()
  • 调用后端身份证号码登录接口

3. API接口扩展

3.1 身份证号码登录接口 (apiRc/login.js)

export function idCardLogin(data) {
  return request({
    method: 'post',
    url: '/app/idCardLogin',
    data,
    headers: {
      isToken: false
    }
  })
}

4. 登录帮助工具类 (utils/loginHelper.js)

  • 平台类型检测 (getPlatformType)
  • 登录页面跳转 (navigateToLoginPage)
  • 登录状态检查 (checkLoginAndNavigate)
  • URL参数解析 (parseIdCardLoginParams)
  • Base64解码 (decodeIdCardBase64)

5. 现有组件集成

5.1 微信授权登录组件 (components/wxAuthLogin/WxAuthLogin.vue)

  • 已修复语法错误
  • H5端点击微信授权登录时跳转到H5登录页面
  • 小程序端保持原有的微信授权登录逻辑
  • App端保持原有的微信授权登录逻辑

5.2 首页组件 (pages/index/components/index-one.vue)

  • 已集成登录检查逻辑
  • onMounted生命周期中调用checkLoginAndNavigate()

5.3 Tabbar组件 (components/CustomTabBar/CustomTabBar.vue)

  • 已集成登录状态判断
  • 对于需要登录的页面(发布岗位、我的页面),检查登录状态
  • 未登录时跳转到对应登录页面

6. 路由配置 (pages.json)

  • 已注册新的登录页面路由
  • H5登录页面: /pages/login/h5-login
  • 身份证号码登录页面: /pages/login/id-card-login

登录流程

小程序端登录流程

  1. 用户点击需要登录的功能
  2. 显示微信授权登录弹窗
  3. 用户授权手机号
  4. 调用后端接口获取token
  5. 登录成功,跳转到目标页面

H5端登录流程

  1. 用户点击需要登录的功能
  2. 跳转到H5登录页面
  3. 用户可选择:
    • 账号密码登录
    • 身份证号码登录
  4. 登录成功,跳转到目标页面

身份证号码登录流程

  1. 第三方系统跳转到身份证号码登录页面
  2. 通过URL参数传递Base64编码的身份证号码
  3. 页面自动解码身份证号码
  4. 调用后端身份证号码登录接口
  5. 获取token和用户信息
  6. 登录成功,跳转到首页

技术特点

1. 条件编译

使用#ifdef#ifndef实现多端差异化逻辑

2. Base64解码

  • H5: atob(base64Str)
  • 小程序: uni.base64ToArrayBuffer(base64Str)
  • App: plus.base64.decode(base64Str)

3. 状态管理

使用Pinia store (useUserStore)管理用户状态

4. 错误处理

完善的错误处理和用户提示

测试建议

  1. 小程序端测试: 验证微信授权登录功能
  2. H5端测试: 验证账号密码登录和身份证号码登录
  3. 身份证号码登录测试: 模拟第三方跳转验证Base64解码和登录流程
  4. Tabbar导航测试: 验证登录状态判断和页面跳转

文件清单

  • pages/login/h5-login.vue - H5账号密码登录页面
  • pages/login/id-card-login.vue - 身份证号码登录页面
  • utils/loginHelper.js - 登录帮助工具类
  • apiRc/login.js - 扩展的API接口
  • components/wxAuthLogin/WxAuthLogin.vue - 修复后的微信授权组件
  • pages/index/components/index-one.vue - 集成登录检查的首页组件
  • components/CustomTabBar/CustomTabBar.vue - 集成登录判断的Tabbar组件
  • pages.json - 页面路由配置

注意事项

  1. 身份证号码登录页面需要第三方系统通过URL参数传递idCardBase64
  2. 后端需要实现/app/idCardLogin接口
  3. 各端Base64解码方式不同需要确保兼容性
  4. 登录成功后需要正确存储用户信息和token

系统已准备就绪,可以开始多端测试。