feat(qr-login): 添加租户ID字段以支持多租户场景
在 QR 登码登录流程中,新增 tenantId 字段用于标识用户所属租户。 同时移除了调试用的 System.out.println语句,优化代码整洁性。 调整了 QrLoginStatusResponse 的构造参数,确保返回信息包含租户 ID。
This commit is contained in:
@@ -58,6 +58,7 @@ public class QrLoginServiceImpl implements QrLoginService {
|
||||
QrLoginData qrLoginData = new QrLoginData();
|
||||
qrLoginData.setToken(token);
|
||||
qrLoginData.setStatus(QR_LOGIN_STATUS_PENDING);
|
||||
qrLoginData.setTenantId(tenantId);
|
||||
qrLoginData.setCreateTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||
qrLoginData.setExpireTime(DateUtil.formatDateTime(DateUtil.offsetSecond(DateUtil.date(), QR_LOGIN_TOKEN_TTL.intValue())));
|
||||
|
||||
@@ -93,21 +94,21 @@ public class QrLoginServiceImpl implements QrLoginService {
|
||||
@Override
|
||||
public QrLoginStatusResponse checkQrLoginStatus(String token) {
|
||||
if (StrUtil.isBlank(token)) {
|
||||
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L);
|
||||
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L, null);
|
||||
}
|
||||
|
||||
String redisKey = QR_LOGIN_TOKEN_KEY + token;
|
||||
QrLoginData qrLoginData = redisUtil.get(redisKey, QrLoginData.class);
|
||||
|
||||
if (qrLoginData == null) {
|
||||
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L);
|
||||
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L, null);
|
||||
}
|
||||
|
||||
// 检查是否过期
|
||||
if (DateUtil.date().after(DateUtil.parseDateTime(qrLoginData.getExpireTime()))) {
|
||||
// 删除过期的token
|
||||
redisUtil.delete(redisKey);
|
||||
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L);
|
||||
return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L, null);
|
||||
}
|
||||
|
||||
// 计算剩余过期时间
|
||||
@@ -124,7 +125,6 @@ public class QrLoginServiceImpl implements QrLoginService {
|
||||
// 获取用户信息
|
||||
if (qrLoginData.getUserId() != null) {
|
||||
User user = userService.getAllByUserId("" + qrLoginData.getUserId());
|
||||
System.out.println("qrLoginData->user = " + user);
|
||||
if (user != null) {
|
||||
// 清除敏感信息
|
||||
user.setPassword(null);
|
||||
@@ -182,7 +182,6 @@ public class QrLoginServiceImpl implements QrLoginService {
|
||||
qrLoginData.setUsername(user.getUsername());
|
||||
qrLoginData.setAccessToken(accessToken);
|
||||
qrLoginData.setTenantId(user.getTenantId());
|
||||
System.out.println("qrLoginData = " + qrLoginData);
|
||||
// 更新Redis中的数据
|
||||
redisUtil.set(redisKey, qrLoginData, 60L, TimeUnit.SECONDS); // 给前端60秒时间获取token
|
||||
|
||||
@@ -191,7 +190,7 @@ public class QrLoginServiceImpl implements QrLoginService {
|
||||
// 清除敏感信息
|
||||
user.setPassword(null);
|
||||
|
||||
return new QrLoginStatusResponse(QR_LOGIN_STATUS_CONFIRMED, accessToken, user, 60L);
|
||||
return new QrLoginStatusResponse(QR_LOGIN_STATUS_CONFIRMED, accessToken, user, 60L, user.getTenantId());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user