fix(wxlogin): 修复微信登录用户信息获取问题
- 在微信登录逻辑中,添加了获取用户详细信息的步骤 - 通过 userService.getByIdRel 方法获取完整的用户信息 - 确保在生成 token 和返回登录结果时使用完整的用户信息
This commit is contained in:
@@ -464,14 +464,15 @@ public class WxLoginController extends BaseController {
|
|||||||
|
|
||||||
if (StrUtil.isNotBlank(openid)) {
|
if (StrUtil.isNotBlank(openid)) {
|
||||||
User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getOpenid, openid).last("limit 1"));
|
User user = userService.getOne(new LambdaQueryWrapper<User>().eq(User::getOpenid, openid).last("limit 1"));
|
||||||
if (ObjectUtil.isNotEmpty(user)) {
|
final User userInfo = userService.getByIdRel(user.getUserId());
|
||||||
// 签发token
|
if (ObjectUtil.isNotEmpty(userInfo)) {
|
||||||
String access_token = JwtUtil.buildToken(new JwtSubject(user.getUsername(), user.getTenantId()),
|
// 签发token
|
||||||
configProperties.getTokenExpireTime(), configProperties.getTokenKey());
|
String access_token = JwtUtil.buildToken(new JwtSubject(user.getUsername(), user.getTenantId()),
|
||||||
loginRecordService.saveAsync(user.getUsername(), LoginRecord.TYPE_REGISTER, null, user.getTenantId(), request);
|
configProperties.getTokenExpireTime(), configProperties.getTokenKey());
|
||||||
return success("登录成功", new LoginResult(access_token, user));
|
loginRecordService.saveAsync(user.getUsername(), LoginRecord.TYPE_REGISTER, null, user.getTenantId(), request);
|
||||||
}
|
return success("登录成功", new LoginResult(access_token, userInfo));
|
||||||
return fail("用户未注册", openid);
|
}
|
||||||
|
return fail("用户未注册", openid);
|
||||||
}
|
}
|
||||||
return fail("openId获取失败");
|
return fail("openId获取失败");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user