一、该问题的重现步骤是什么?
短信验证成功后,我将保存到user表的信息通过以下语句得到token信息:
TokenInfo tokenInfo = SecureUtil.createJWT(user, "", "", "access_token")
2. 得到tokenInfo后,我用以下语句,将其加到redis缓存:
JwtUtil.addAccessToken(tenantId, userId, tokenInfo.getToken(), 36000);
3.写的短信登录算是登录成功,但问题来了,我通过以下语句获取当前登录用户信息是,只有account是有值的,其他信息都为空:
BladeUser buInfo = AuthUtil.getUser();
二、你期待的结果是什么?实际看到的又是什么?
期待结果,通过以下语句得到的buInfo是完整的。
BladeUser buInfo = AuthUtil.getUser();
但实际看到的却如图:
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
使用的产品是:BladeX-3.0.1.RELEASE
操作系统是win10
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
TokenInfo tokenInfo = SecureUtil.createJWT(user, "", "", "access_token")这里的user你断点看下是不是传进去就没有值.
问题已解决,分两步:
1、获取token时,传递的用户信息,数据格式为map,其key值必须非驼峰:
2、需要将bladeUser信息保存至HttpServletRequest,此时bladeUser信息字段就是驼峰了:
HttpServletRequest request = WebUtil.getRequest();
// 保存
request.setAttribute("_BLADE_USER_REQUEST_ATTR_", bladeUser);
扫一扫访问 Blade技术社区 移动端