Files
core/docs/WX_LOGIN_TENANT_SUPPORT.md
赵忠林 7a332ccd13 feat(wx-login): 添加微信登录接口租户支持
- 新增支持指定租户ID的微信登录相关接口
- 添加获取AccessToken和登录接口的重载版本
- 更新文档,增加租户支持相关说明
- 修改内部方法,支持指定租户ID参数
2025-09-05 16:05:28 +08:00

3.2 KiB
Raw Blame History

微信登录接口租户支持文档

概述

为了支持多租户场景我们为微信登录相关接口添加了支持指定租户ID的重载版本。这样可以在跨租户场景下灵活使用微信登录功能。

新增接口

1. 获取AccessToken支持租户ID

接口地址: POST /api/wx-login/getAccessToken/{tenantId}

参数:

  • tenantId租户ID路径参数

示例:

curl -X POST "http://localhost:8080/api/wx-login/getAccessToken/123"

2. 微信授权手机号码并登录支持租户ID

接口地址: POST /api/wx-login/loginByMpWxPhone/{tenantId}

参数:

  • tenantId租户ID路径参数
  • 请求体UserParam对象

示例:

curl -X POST "http://localhost:8080/api/wx-login/loginByMpWxPhone/123" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "登录凭证code",
    "authCode": "手机号授权code",
    "openid": "微信openid可选"
  }'

兼容性

原有接口保持不变

所有原有的接口都保持不变,确保向后兼容:

  • POST /api/wx-login/getAccessToken - 使用当前租户ID
  • POST /api/wx-login/loginByMpWxPhone - 使用当前租户ID

内部方法重载

我们添加了以下内部方法的重载版本:

  1. getAccessToken(Integer tenantId) - 支持指定租户ID获取AccessToken
  2. getPhoneByCode(UserParam userParam, Integer tenantId) - 支持指定租户ID获取手机号
  3. addUserWithTenant(UserParam userParam, Integer tenantId) - 支持指定租户ID注册用户

使用场景

场景1管理员代理操作

管理员需要为特定租户的用户进行微信登录操作:

// 前端代码
wx.login({
  success: (loginRes) => {
    wx.getPhoneNumber({
      success: (phoneRes) => {
        wx.request({
          url: '/api/wx-login/loginByMpWxPhone/123', // 指定租户ID
          method: 'POST',
          data: {
            code: loginRes.code,
            authCode: phoneRes.code
          }
        });
      }
    });
  }
});

场景2跨租户数据同步

在数据同步或迁移场景下需要为不同租户获取AccessToken

// 后端代码示例
String tenant1Token = getAccessToken(123);
String tenant2Token = getAccessToken(456);

注意事项

  1. 租户ID验证系统会验证传入的租户ID是否有效
  2. 权限控制:确保调用者有权限操作指定租户的数据
  3. 缓存隔离不同租户的AccessToken会分别缓存互不影响
  4. 错误处理如果指定的租户ID无效会返回相应的错误信息

错误码

错误码 说明
40001 租户ID无效
40002 无权限操作指定租户
40029 微信授权码无效或过期

最佳实践

  1. 前端处理建议前端分别获取登录code和手机号code避免code重复使用
  2. 错误重试当遇到40029错误时提示用户重新授权
  3. 日志记录:系统会记录详细的操作日志,便于问题排查
  4. 租户隔离:确保不同租户的数据完全隔离

更新日志

  • 2024-12-19添加租户支持功能
  • 2024-12-19修复openid获取失败的问题
  • 2024-12-19增强错误处理和日志记录