编辑 | blame | 历史 | 原始文档

企业微信免登功能使用说明

功能概述

企业微信免登功能允许用户通过企业微信客户端直接登录系统,无需输入用户名和密码,提升用户体验。

实现原理

  1. 用户在企业微信客户端中访问系统URL
  2. 系统检测到企业微信环境,自动跳转到企业微信授权页面
  3. 用户确认授权后,企业微信返回授权code
  4. 系统通过code获取用户信息并完成登录

文件结构

前端:
- app/pages/qylogin.vue          # 移动端免登页面
- ruoyi-ui/src/views/system/qywechat/autologin.vue  # PC端免登测试页面
- ruoyi-ui/src/router/modules/qywechat.js  # 路由配置

后端:
- ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/QyWechatLoginController.java  # 免登控制器
- ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java  # 用户Mapper接口
- ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml  # 用户Mapper XML
- ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java  # 用户服务接口
- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java  # 用户服务实现

配置要求

1. 企业微信配置

在系统配置中添加以下配置项:

-- 企业微信启用开关
INSERT INTO sys_config VALUES (NULL, '企业微信启用开关', 'qy_wechat.enable', 'true', 'Y', '系统内置', '是否启用企业微信功能', '1', '1', '2025-12-14 10:00:00', 'admin', '2025-12-14 10:00:00', 'admin', NULL);

-- 企业微信CorpID
INSERT INTO sys_config VALUES (NULL, '企业微信CorpID', 'qy_wechat.corp_id', 'your_corp_id', 'Y', '系统内置', '企业微信企业ID', '1', '1', '2025-12-14 10:00:00', 'admin', '2025-12-14 10:00:00', 'admin', NULL);

-- 企业微信应用Secret(用于获取用户信息)
INSERT INTO sys_config VALUES (NULL, '企业微信应用Secret', 'qy_wechat.corp_secret', 'your_corp_secret', 'Y', '系统内置', '企业微信应用密钥', '1', '1', '2025-12-14 10:00:00', 'admin', '2025-12-14 10:00:00', 'admin', NULL);

-- 企业微信小程序Secret(用于获取AccessToken)
INSERT INTO sys_config VALUES (NULL, '企业微信小程序Secret', 'qy_wechat.miniprogram_secret', 'your_miniprogram_secret', 'Y', '系统内置', '企业微信关联小程序密钥', '1', '1', '2025-12-14 10:00:00', 'admin', '2025-12-14 10:00:00', 'admin', NULL);

-- 企业微信AgentId
INSERT INTO sys_config VALUES (NULL, '企业微信AgentId', 'qy_wechat.agent_id', 'your_agent_id', 'Y', '系统内置', '企业微信应用ID', '1', '1', '2025-12-14 10:00:00', 'admin', '2025-12-14 10:00:00', 'admin', NULL);

2. 用户绑定

需要将系统用户与企业微信用户进行绑定,在sys_user表中设置qy_wechat_user_id字段。

使用流程

移动端使用

  1. 用户在企业微信中打开系统URL
  2. 系统自动跳转到免登页面 /pages/qylogin
  3. 页面检测企业微信环境并获取授权code
  4. 调用后端免登接口完成登录

PC端测试

  1. 登录系统后台
  2. 进入【企业微信】->【免登测试】菜单
  3. 输入企业微信授权code进行测试

接口说明

免登接口

POST /system/qywechat/autoLogin

请求参数:
{
  "code": "企业微信授权code"
}

响应结果:
{
  "code": 200,
  "msg": "登录成功",
  "data": {
    "token": "登录令牌",
    "user": {
      // 用户信息
    }
  }
}

注意事项

  1. 企业微信免登功能仅支持在企业微信客户端中使用
  2. 需要正确配置企业微信应用的可信域名
  3. 用户必须先绑定企业微信账号才能使用免登功能
  4. 确保服务器能够访问企业微信API接口

常见问题

1. 授权失败

问题现象:提示"获取用户信息失败"

解决方案
- 检查企业微信配置是否正确
- 确认应用的可信域名配置
- 检查网络是否能访问企业微信API

2. 用户未绑定

问题现象:提示"该企业微信账号未绑定系统用户"

解决方案
- 在用户管理中找到对应用户
- 设置qy_wechat_user_id字段为企业微信用户ID

3. 登录异常

问题现象:提示"登录异常"

解决方案
- 查看系统日志定位具体错误
- 检查用户状态是否正常
- 确认系统配置是否完整

扩展功能

1. 自动跳转配置

可以在前端页面中配置自动跳转逻辑:

// 检查企业微信环境
isWxWorkEnvironment() {
  const userAgent = navigator.userAgent.toLowerCase()
  return userAgent.includes('wxwork')
}

2. 用户绑定接口

可以开发用户绑定企业微信的接口:

@PostMapping("/bind")
public AjaxResult bindQyWechatUser(@RequestBody BindRequest request) {
  // 实现用户绑定逻辑
}