在黑马点评的短信验证部分,出现了验证成功却跳转首页问题。

        首先修改前端的代码,在点击登录后,重定向到了首页,需要修改代码,不让它跳转到首页,让其仍在“我的”页面,然后使其可以触发“user/me” 接口,如下图:

login.html文件

修改location.href=/info.html

        然后修改js文件下的common.js文件

问题在common.js:登录后拦截器仍使用初始化时的旧 token 变量,后续请求头里没有新 token,/user/me 返回 401,前端被重定向回登录/首页。

解决:将请求拦截器改为每次从 sessionStorage 读取 token,确保登录后立刻带上新 token。

后端部分:

拦截器过滤 excludePathPatterns 不需要加“/user/me”因为它本来就是要拦截的。

需要修改LoginInterceptor类中的的UserHolder.saveUser(user);

因为UserHolder中线程ThreadLocal的泛型是UserDTO,而user是User类,参数类型不一致报错。

@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //1. 获取session
        HttpSession session = request.getSession();
        //2. 判断session中是否存在用户
        Object user = session.getAttribute("user");
        //3. 不存在,拦截,返回401
        if (user == null){
            response.setStatus(401);
            return false;
        }
        //4. 存在,保存在ThreadLocal
        UserDTO userDTO = new UserDTO();
        BeanUtils.copyProperties((User)user,userDTO);
        UserHolder.saveUser(userDTO);
        //5. 放行
        return true;
    }

然后登录就可以是以下画面了:

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐