SpringBoot如何实现token登录
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要为大家展示了"SpringBoot如何实现token登录",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SpringBoot如何实现token登
千家信息网最后更新 2026年11月02日SpringBoot如何实现token登录
这篇文章主要为大家展示了"SpringBoot如何实现token登录",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SpringBoot如何实现token登录"这篇文章吧。
为什么引入token机制?
在进行登录验证时,我们需要session或cookie会话进行验证,客户端包括浏览器、app、微信小程序、公众号,只有浏览器有session和cookie机制,当我们脱离浏览器用app等向服务端发请求就没有session和cookie机制,这时我们就需要使用token令牌进行登录验证。
代码实现
先建个util包,并创建TokenUtil类用于生成token
TokenUtil类代码
package com.qcby.util; import com.qcby.entity.User; import java.util.HashMap;import java.util.Map;import java.util.UUID; public class TokenUtil { /** * 创建map用于存储所有的令牌 * * token - User */ private static Map tokenMap=new HashMap<>(); /** * 生成token,存储token-user对应关系 * 返回token令牌 * @param user * @return */ public static String generateToken(User user){ //生成唯一不重复的字符串 String token = UUID.randomUUID().toString(); tokenMap.put(token,user); return token; } /** * 验证token是否合法 * @param token * @return */ public static boolean verify(String token){ return tokenMap.containsKey(token); } /** * 根据token获取用户信息 * @param token * @return */ public static User getUser(String token){ return tokenMap.get(token); }} LoginInterceptor类代码
package com.qcby.interceptor; import com.qcby.util.TokenUtil;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.method.HandlerMethod;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession; public class LoginInterceptor implements HandlerInterceptor { //Controller逻辑执行之前 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("preHandle...."); String uri = request.getRequestURI(); System.out.println("当前路径"+uri); /** * HandlerMethod=>Controller中标注@RequestMapping的方法 * 需要配置静态资源不拦截时,添加这块逻辑 => 前后端分离项目 */ if (!(handler instanceof HandlerMethod)) { return true; } String token=request.getHeader("qcby-token"); if (!TokenUtil.verify(token)) { // 未登录跳转到登录界面 throw new RuntimeException("no login!"); } else { return true; } } //Controller逻辑执行完毕但是视图解析器还未进行解析之前 @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { System.out.println("postHandle...."); } //Controller逻辑和视图解析器执行完毕 @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { System.out.println("afterCompletion...."); }}实现类
@RestController@RequestMapping("user")public class UserController { @Autowired private UserService userService; @ApiOperation("用户登录接口") @RequestMapping(value="login",method = {RequestMethod.GET,RequestMethod.POST}) public Maplogin(User user){ Map map=new HashMap<>(); map.put("code",0); if(StringUtils.isEmpty(user.getUsername())||StringUtils.isEmpty(user.getPassword())){ map.put("msg","用户或密码为空!"); return map; } QueryWrapper queryWrapper=new QueryWrapper<>(); queryWrapper.eq("username",user.getUsername()) .eq("password",user.getPassword()); User user1=userService.getOne(queryWrapper); if(user1!=null){ String token= TokenUtil.generateToken(user1); map.put("cod",1); map.put("data",user1); map.put("token",token); }else { map.put("msg","用户名或密码错误!"); } return map; }} 拦截器类可以参考这篇文章,这个token验证就是在拦截器上改动的。
SpringBoot拦截器实现登录拦截
需要有postman验证

以上是"SpringBoot如何实现token登录"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
登录
验证
用户
篇文章
逻辑
代码
令牌
内容
机制
拦截器
浏览
生成
密码
浏览器
视图
存储
学习
帮助
合法
信息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡
互联网与科技
互联网科技公司简介
互联网科技公司华为
互联网电商科技
互联网科技社
互联网科技战争
互联网科技金融
美国互联网科技
唐信互联网科技
深圳天众互联网科技公司
长亮科技 互联网金融
互联网科技公司招聘
互联网科技公司需要的职位
北京大学互联网科技怎么样
佳云科技和互联网广告
中国科技创新与世界互联网大会
第三届互联网大会安防黑科技
黑龙江互联网科技公司
网互联网络科技
苏州找大状互联网科技有限公司
科技互联网公司logo
万达互联网科技
佩信高科技互联网
互联网科技公司的市场部门
江苏南京365互联网科技
恒银科技与互联网金融
互联网数据科技专业
宁波跨境商互联网科技有限公司
安徽九吞吴互联网科技有限公司