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安全错误
数据库的锁怎样保障安全
互联网科技名片
互联网科技网
云之行互联网科技
互联网科技行业发展
科技互联网技术
互联网科技金融公司
平安科技 互联网
互联网金融科技平台
互联网科技小额贷款
长亮科技互联网金融
互联网科技汛
金融科技和互联网金融
南平创想时代互联网科技有限公司
玉溪新华互联网科技好不好
互联网科技如何创业
南通创西澳互联网科技有限公司
互联网与数字科技关系
福州德业互联网科技
科技互联网公司两年变化
恒生互联网科技趋势
深圳恒合互联网络科技有限公司
长亮科技互联网金融
富国互联网科技创新基金
智腾互联网科技有限公司
北京市互联网新科技
美国互联网科技公司
互联网时代科技型公司的机会
互联网大会出现的黑科技
现代科技的标志之一的互联网
颐高云石互联网科技