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 qrLoginData = new QrLoginData();
|
||||||
qrLoginData.setToken(token);
|
qrLoginData.setToken(token);
|
||||||
qrLoginData.setStatus(QR_LOGIN_STATUS_PENDING);
|
qrLoginData.setStatus(QR_LOGIN_STATUS_PENDING);
|
||||||
|
qrLoginData.setTenantId(tenantId);
|
||||||
qrLoginData.setCreateTime(DateUtil.formatDateTime(DateUtil.date()));
|
qrLoginData.setCreateTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
qrLoginData.setExpireTime(DateUtil.formatDateTime(DateUtil.offsetSecond(DateUtil.date(), QR_LOGIN_TOKEN_TTL.intValue())));
|
qrLoginData.setExpireTime(DateUtil.formatDateTime(DateUtil.offsetSecond(DateUtil.date(), QR_LOGIN_TOKEN_TTL.intValue())));
|
||||||
|
|
||||||
@@ -93,21 +94,21 @@ public class QrLoginServiceImpl implements QrLoginService {
|
|||||||
@Override
|
@Override
|
||||||
public QrLoginStatusResponse checkQrLoginStatus(String token) {
|
public QrLoginStatusResponse checkQrLoginStatus(String token) {
|
||||||
if (StrUtil.isBlank(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;
|
String redisKey = QR_LOGIN_TOKEN_KEY + token;
|
||||||
QrLoginData qrLoginData = redisUtil.get(redisKey, QrLoginData.class);
|
QrLoginData qrLoginData = redisUtil.get(redisKey, QrLoginData.class);
|
||||||
|
|
||||||
if (qrLoginData == null) {
|
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()))) {
|
if (DateUtil.date().after(DateUtil.parseDateTime(qrLoginData.getExpireTime()))) {
|
||||||
// 删除过期的token
|
// 删除过期的token
|
||||||
redisUtil.delete(redisKey);
|
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) {
|
if (qrLoginData.getUserId() != null) {
|
||||||
User user = userService.getAllByUserId("" + qrLoginData.getUserId());
|
User user = userService.getAllByUserId("" + qrLoginData.getUserId());
|
||||||
System.out.println("qrLoginData->user = " + user);
|
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
// 清除敏感信息
|
// 清除敏感信息
|
||||||
user.setPassword(null);
|
user.setPassword(null);
|
||||||
@@ -182,7 +182,6 @@ public class QrLoginServiceImpl implements QrLoginService {
|
|||||||
qrLoginData.setUsername(user.getUsername());
|
qrLoginData.setUsername(user.getUsername());
|
||||||
qrLoginData.setAccessToken(accessToken);
|
qrLoginData.setAccessToken(accessToken);
|
||||||
qrLoginData.setTenantId(user.getTenantId());
|
qrLoginData.setTenantId(user.getTenantId());
|
||||||
System.out.println("qrLoginData = " + qrLoginData);
|
|
||||||
// 更新Redis中的数据
|
// 更新Redis中的数据
|
||||||
redisUtil.set(redisKey, qrLoginData, 60L, TimeUnit.SECONDS); // 给前端60秒时间获取token
|
redisUtil.set(redisKey, qrLoginData, 60L, TimeUnit.SECONDS); // 给前端60秒时间获取token
|
||||||
|
|
||||||
@@ -191,7 +190,7 @@ public class QrLoginServiceImpl implements QrLoginService {
|
|||||||
// 清除敏感信息
|
// 清除敏感信息
|
||||||
user.setPassword(null);
|
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
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user