|
|
@@ -94,7 +94,7 @@ public class WeChatController {
|
|
|
@Operation(summary = "获取用户信息", description = "根据 token 返回当前用户信息(支持 Authorization/X-Token/token)")
|
|
|
@PostMapping(path = "/user_info", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
|
|
public R<?> getUserInfo(@RequestBody(required = false) Map<String, String> body, HttpServletRequest request) {
|
|
|
- // 优先使用拦截器放入的 currentUserId(AuthInterceptor 已验证 X-Token)
|
|
|
+ // 使用拦截器放入的 currentUserId(AuthInterceptor 已验证 X-Token)
|
|
|
Object attr = request.getAttribute("currentUserId");
|
|
|
Long userId = null;
|
|
|
|
|
|
@@ -133,33 +133,20 @@ public class WeChatController {
|
|
|
@PostMapping(path = "/update_user_info", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
|
|
public R<?> updateUserInfo(@RequestBody(required = false) work.baiyun.chronicdiseaseapp.model.vo.UpdateUserInfoRequest req,
|
|
|
HttpServletRequest request) {
|
|
|
- // resolve userId same as getUserInfo
|
|
|
+ // 使用拦截器放入的 currentUserId(AuthInterceptor 已验证 X-Token)
|
|
|
Object attr = request.getAttribute("currentUserId");
|
|
|
Long userId = null;
|
|
|
+
|
|
|
if (attr instanceof Long) {
|
|
|
userId = (Long) attr;
|
|
|
} else if (attr instanceof Integer) {
|
|
|
+ // 有时框架可能将数字解析为 Integer
|
|
|
userId = ((Integer) attr).longValue();
|
|
|
}
|
|
|
|
|
|
+ // 如果拦截器没有提供 userId,则401
|
|
|
if (userId == null) {
|
|
|
- String token = null;
|
|
|
- if (request.getHeader("X-Token") != null && !request.getHeader("X-Token").isEmpty()) {
|
|
|
- token = request.getHeader("X-Token");
|
|
|
- } else if (request.getHeader("token") != null && !request.getHeader("token").isEmpty()) {
|
|
|
- token = request.getHeader("token");
|
|
|
- } else if (req != null && req.getToken() != null && !req.getToken().isEmpty()) {
|
|
|
- token = req.getToken();
|
|
|
- }
|
|
|
-
|
|
|
- if (token == null || token.isEmpty()) {
|
|
|
- return R.fail(401, "Missing token");
|
|
|
- }
|
|
|
-
|
|
|
- userId = tokenService.validateToken(token);
|
|
|
- if (userId == null) {
|
|
|
- return R.fail(401, "Invalid or expired token");
|
|
|
- }
|
|
|
+ return R.fail(401, "No valid userId");
|
|
|
}
|
|
|
|
|
|
UserInfo ui = userInfoMapper.selectById(userId);
|