广告
返回顶部
首页 > 资讯 > 精选 >Java怎么实现登录token令牌
  • 667
分享到

Java怎么实现登录token令牌

2023-06-30 15:06:48 667人浏览 安东尼
摘要

本文小编为大家详细介绍“Java怎么实现登录token令牌”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现登录token令牌”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、流程图二、Tokent

本文小编为大家详细介绍“Java怎么实现登录token令牌”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现登录token令牌”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、流程图

Java怎么实现登录token令牌

二、Token

token是一种客户端认证机制,是一个经过加密的字符串安全性强,支持跨域

用户第一次登录,服务器通过数据库校验其UserId和PassWord合法,则再根据随机数字+userid+当前时间戳再经过DES加密生成一个token串

  • 当然具体生成token的方式是开发自己定义的   

token的生成一般是采用uuid保证唯一性,当用户登录时为其生成唯一的token,存储一般保存在数据库

  • token过期时间采用把token二次保存在cookie或session里面,根据cookie和session的过期时间去维护token的过期时间

Token是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回Token给前端。前端可以在每次请求的时候带上Token证明自己的合法地位

Token,就是令牌,最大的特点就是随机性,不可预测。一般黑客或软件无法猜测出来

三、分析

建立一个token令牌,在用户登录时候给用户一个独特得令牌值,登录时候嘚赋值这个令牌

在SpringBoot项目中建立一个Util文件夹

文件夹下建立TokenUtil.java文件

public class TokenUtil {      private static Map<String, User> tokenMap = new HashMap<>();      public static String generateToken(User user){        //生成唯一不重复的字符串        String token = UUID.randomUUID().toString();        tokenMap.put(token,user);        return token;    }         public static  boolean verify(String token){        return tokenMap.containsKey(token);    }     public static User gentUser(String token){        return tokenMap.get(token);    }     public static void main(String[] args) {        for (int i = 0; i < 20; i++){            System.out.println(UUID.randomUUID().toString());        }    } }

用户登录得UserController.java

@api( tags = {"用户模块接口"})@RestController@RequestMapping("user")public class UserController {    @Autowired    private UserService userService;     @Autowired    private httpsession session;    @ApiOperation("登录接口")    @RequestMapping(value = "login",method ={RequestMethod.POST,RequestMethod.GET})    public Map<String,Object> login(User user){        Map<String,Object> map = new HashMap<>();        map.put("code",0);        if(StringUtils.isEmpty(user.getUsername()) || StringUtils.isEmpty(user.getPassword()) ){            map.put("msg","用户或者密码为空!");            return map;        }        QueryWrapper<User> queryWrapper = new QueryWrapper<>();        queryWrapper.eq("username",user.getUsername())                .eq("password",user.getPassword());        User userDb = userService.getOne(queryWrapper);        if(userDb != null){            String token= TokenUtil.generateToken(userDb);            map.put("code",1);            map.put("data",userDb);            map.put("token",token);            session.setAttribute("username",userDb.getUsername());        }else{            map.put("msg","用户名或密码错误!");        }        return map;    }    @ApiImplicitParams(            {            @ApiImplicitParam(name = "id",                    value = "用户id", required = true,                    dataType = "Long"),            @ApiImplicitParam(name = "name",                    value = "测试名字",                    dataType = "string")            }    )    @ApiOperation("根据id查询用户信息")    @RequestMapping(value="getById",method ={RequestMethod.POST,RequestMethod.GET})    public  User getById(Long id ,String name){        System.out.println(name);        return userService.getById(id);    } }

在拦截器上操作 interceptor下面LoginInterceptor.java

public class LoginInterceptor implements HandlerInterceptor {     @Autowired    private HttpSession httpSession;     //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);                // 是我们的conrtoller中的方法        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....");    }}

四、运行结果

http://localhost:8080/

Java怎么实现登录token令牌

 http://localhost:8080/user/login?username=admin&password=123456

Java怎么实现登录token令牌

 记住这个令牌    

60227b0e-bdbb-47d9-9df4-f56163cb529d

在postman中

Java怎么实现登录token令牌

写入令牌,输出成功

Java怎么实现登录token令牌

读到这里,这篇“Java怎么实现登录token令牌”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Java怎么实现登录token令牌

本文链接: https://www.lsjlt.com/news/329914.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java怎么实现登录token令牌
    本文小编为大家详细介绍“Java怎么实现登录token令牌”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现登录token令牌”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、流程图二、Tokent...
    99+
    2023-06-30
  • Java如何实现登录token令牌
    目录一、流程图二、Token三、分析四、运行结果一、流程图 二、Token 1、token是一种客户端认证机制,是一个经过加密的字符串,安全性强,支持跨域 2、用户第一次登录,服务...
    99+
    2022-11-13
  • Java后端登录实现返回token
    前言 最近工作中需要等待前端进行联调和测试,互联网都知道,当到了联调和提测的时候,基本上的工作都是一阵一阵,中间是有很多空隙时间的,于是为了度过这些空隙时间,写几篇博客,记录一下 处...
    99+
    2022-11-13
  • Java如何实现Token登录验证
    这篇文章主要介绍“Java如何实现Token登录验证”,在日常操作中,相信很多人在Java如何实现Token登录验证问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java如何实现Token登录验证”的疑惑有所...
    99+
    2023-07-05
  • Java实现Token登录验证的项目实践
    目录一、JWT是什么?二、使用步骤1.项目结构2.相关依赖3.数据库4.相关代码三、测试结果一、JWT是什么? 在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流程...
    99+
    2023-03-19
    Java Token登录验证 Java 登录验证
  • SpringBoot怎么使用Sa-Token实现登录认证
    这篇文章主要讲解了“SpringBoot怎么使用Sa-Token实现登录认证”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot怎么使用Sa-Token实现登录认证”吧!一、设...
    99+
    2023-07-05
  • Java登录功能实现token生成与验证
    一、token与cookie相比较的优势 1、支持跨域访问,将token置于请求头中,而cookie是不支持跨域访问的; 2、无状态化,服务端无需存储token,只...
    99+
    2022-11-12
  • 怎么用vue实现登录注册及token验证
    本篇内容主要讲解“怎么用vue实现登录注册及token验证”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用vue实现登录注册及token验证”吧!1. 利用router.beforeEach...
    99+
    2023-07-04
  • java怎么实现qq登录
    要实现QQ登录,可以使用QQ互联开放平台提供的SDK来实现。下面是使用Java实现QQ登录的基本步骤:1. 在QQ互联开放平台上创建...
    99+
    2023-08-31
    java
  • python+pytest接口自动化之token关联登录怎么实现
    今天小编给大家分享一下python+pytest接口自动化之token关联登录怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-06-29
  • java怎么实现网页登录
    在Java中实现网页登录,可以使用Java Web技术,如Servlet、JSP、HTML、CSS、JavaScript等。以下是一...
    99+
    2023-09-14
    java
  • Token登陆验证机制怎么实现
    这篇文章主要介绍“Token登陆验证机制怎么实现”,在日常操作中,相信很多人在Token登陆验证机制怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Token登陆验证机制怎么实现”的疑惑有所帮助!接下来...
    99+
    2023-06-21
  • Java怎么实现qq登录功能
    要实现qq登录功能,可以使用qq登录的开放平台提供的API。下面是一种实现的方法: 注册成为qq开放平台的开发者,获取App I...
    99+
    2023-10-21
    Java
  • 基于Java怎么实现扫码登录
    这篇文章主要介绍了基于Java怎么实现扫码登录的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Java怎么实现扫码登录文章都会有所收获,下面我们一起来看看吧。原理解析1. 身份认证机制在介绍扫码登录的原理之前...
    99+
    2023-06-30
  • Java后端登录功能怎么实现
    本篇内容介绍了“Java后端登录功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 登录需求分析页面原型 登录页面展示:项目路径...
    99+
    2023-06-30
  • Java怎么实现简单登录注册
    今天小编给大家分享一下Java怎么实现简单登录注册的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、登录1. 内容介绍定义一...
    99+
    2023-06-30
  • java人脸识别登录怎么实现
    要实现Java人脸识别登录,需要进行以下步骤:1. 收集人脸图像:通过摄像头或者上传照片等方式,收集用户的人脸图像,并将其保存在数据...
    99+
    2023-05-25
    java人脸识别 java
  • PHP怎么实现令牌桶限流
    小编给大家分享一下PHP怎么实现令牌桶限流,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP实现令牌桶限流的方法:1、设有一个令牌桶,桶内存放令牌;2、每次访问...
    99+
    2023-06-25
  • 怎么用Java Swing实现QQ登录页面
    本篇内容主要讲解“怎么用Java Swing实现QQ登录页面”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Java Swing实现QQ登录页面”吧!代码如下:impor...
    99+
    2023-06-29
  • Java怎么实现登录与注册页面
    本文小编为大家详细介绍“Java怎么实现登录与注册页面”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现登录与注册页面”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。用java实现的登录与注册页面,实...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作