fix(wxlogin): 修复微信登录用户信息获取问题

- 在微信登录逻辑中,添加了获取用户详细信息的步骤
- 通过 userService.getByIdRel 方法获取完整的用户信息
- 确保在生成 token 和返回登录结果时使用完整的用户信息
This commit is contained in:
2025-08-14 13:47:31 +08:00
parent 1a54eef1a6
commit b87ea2fdb7

View File

@@ -464,14 +464,15 @@ public class WxLoginController extends BaseController {
if (StrUtil.isNotBlank(openid)) {
User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getOpenid, openid).last("limit 1"));
if (ObjectUtil.isNotEmpty(user)) {
// 签发token
String access_token = JwtUtil.buildToken(new JwtSubject(user.getUsername(), user.getTenantId()),
configProperties.getTokenExpireTime(), configProperties.getTokenKey());
loginRecordService.saveAsync(user.getUsername(), LoginRecord.TYPE_REGISTER, null, user.getTenantId(), request);
return success("登录成功", new LoginResult(access_token, user));
}
return fail("用户未注册", openid);
final User userInfo = userService.getByIdRel(user.getUserId());
if (ObjectUtil.isNotEmpty(userInfo)) {
// 签发token
String access_token = JwtUtil.buildToken(new JwtSubject(user.getUsername(), user.getTenantId()),
configProperties.getTokenExpireTime(), configProperties.getTokenKey());
loginRecordService.saveAsync(user.getUsername(), LoginRecord.TYPE_REGISTER, null, user.getTenantId(), request);
return success("登录成功", new LoginResult(access_token, userInfo));
}
return fail("用户未注册", openid);
}
return fail("openId获取失败");
}