|
|
@@ -7,6 +7,10 @@ import work.baiyun.chronicdiseaseapp.mapper.UserTokenMapper;
|
|
|
import work.baiyun.chronicdiseaseapp.model.po.UserToken;
|
|
|
import work.baiyun.chronicdiseaseapp.service.TokenService;
|
|
|
import work.baiyun.chronicdiseaseapp.util.TokenUtil;
|
|
|
+import work.baiyun.chronicdiseaseapp.model.vo.AuthPrincipal;
|
|
|
+import work.baiyun.chronicdiseaseapp.mapper.UserInfoMapper;
|
|
|
+import work.baiyun.chronicdiseaseapp.model.po.UserInfo;
|
|
|
+import work.baiyun.chronicdiseaseapp.enums.PermissionGroup;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
|
@@ -14,12 +18,14 @@ import java.time.LocalDateTime;
|
|
|
public class TokenServiceImpl implements TokenService {
|
|
|
|
|
|
private final UserTokenMapper userTokenMapper;
|
|
|
+ private final UserInfoMapper userInfoMapper;
|
|
|
|
|
|
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TokenServiceImpl.class);
|
|
|
|
|
|
@Autowired
|
|
|
- public TokenServiceImpl(UserTokenMapper userTokenMapper) {
|
|
|
+ public TokenServiceImpl(UserTokenMapper userTokenMapper, UserInfoMapper userInfoMapper) {
|
|
|
this.userTokenMapper = userTokenMapper;
|
|
|
+ this.userInfoMapper = userInfoMapper;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -45,7 +51,7 @@ public class TokenServiceImpl implements TokenService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Long validateToken(String token) {
|
|
|
+ public AuthPrincipal validateToken(String token) {
|
|
|
if (token == null || token.isEmpty()) return null;
|
|
|
UserToken ut = userTokenMapper.selectOne(new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<UserToken>().eq("token", token));
|
|
|
logger.debug("validateToken: token={}, userToken={}", token, ut);
|
|
|
@@ -66,7 +72,16 @@ public class TokenServiceImpl implements TokenService {
|
|
|
userTokenMapper.updateById(ut);
|
|
|
}
|
|
|
|
|
|
- return ut.getUserId();
|
|
|
+ Long userId = ut.getUserId();
|
|
|
+
|
|
|
+ // 查询用户的 role(权限组)
|
|
|
+ UserInfo ui = userInfoMapper.selectById(userId);
|
|
|
+ PermissionGroup role = null;
|
|
|
+ if (ui != null) {
|
|
|
+ role = ui.getRole();
|
|
|
+ }
|
|
|
+
|
|
|
+ return new AuthPrincipal(userId, role);
|
|
|
}
|
|
|
|
|
|
@Override
|