企业微信免登功能允许用户通过企业微信客户端直接登录系统,无需输入用户名和密码,提升用户体验。
前端:
- 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 # 用户服务实现
在系统配置中添加以下配置项:
-- 企业微信启用开关
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);
需要将系统用户与企业微信用户进行绑定,在sys_user表中设置qy_wechat_user_id字段。
/pages/qyloginPOST /system/qywechat/autoLogin
请求参数:
{
"code": "企业微信授权code"
}
响应结果:
{
"code": 200,
"msg": "登录成功",
"data": {
"token": "登录令牌",
"user": {
// 用户信息
}
}
}
问题现象:提示"获取用户信息失败"
解决方案:
- 检查企业微信配置是否正确
- 确认应用的可信域名配置
- 检查网络是否能访问企业微信API
问题现象:提示"该企业微信账号未绑定系统用户"
解决方案:
- 在用户管理中找到对应用户
- 设置qy_wechat_user_id字段为企业微信用户ID
问题现象:提示"登录异常"
解决方案:
- 查看系统日志定位具体错误
- 检查用户状态是否正常
- 确认系统配置是否完整
可以在前端页面中配置自动跳转逻辑:
// 检查企业微信环境
isWxWorkEnvironment() {
const userAgent = navigator.userAgent.toLowerCase()
return userAgent.includes('wxwork')
}
可以开发用户绑定企业微信的接口:
@PostMapping("/bind")
public AjaxResult bindQyWechatUser(@RequestBody BindRequest request) {
// 实现用户绑定逻辑
}