登录校验-会话技术/JWT令牌

news2024/9/27 7:18:21

登录校验

  1. 会话技术
    会话:
    用户打开浏览器,访问web资源的时候,会话建立。直到一方断开连接,会话结束,一次会话中包含多次响应

    会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自同一浏览器,以便在多次会话中的多次数据共享
    会跟踪方案:
    客户端会话跟踪技术:Cookie
    服务端会话跟踪技术:Session
    令牌技术(主流技术)

浏览器与服务器交互使用的http协议,它是无状态的,即每条请求都是独立的,下一次请求不会携带上一次的数据
2.会话跟踪方案的对比

1.cookie

在这里插入图片描述
优点:http中协议支持的技术
缺点:1.移动端App无法使用cookie2.数据保存在客户端,不安全,用户可以在自己电脑禁用cookie 3.cookie不能实现跨域
跨域分为三个维度:协议、ip/域名、端口,有一者不同,则为跨域

2.session

在这里插入图片描述
优点:存储在服务器,安全性高
缺点:服务器集群环境下无法直接使用。Cookie的缺点
在这里插入图片描述

3.令牌技术

优点:
1.支持pc、移动端、小程序
2.解决集群服务器环境下的认证
3.减轻服务器存储的压力

缺点:
需要自己实现

jwt令牌(Json Web Token)

jwt官网
jwt:
定义了一种简介(即字符串)、自包含(即自定义)的格式,用于在通信双方以json数据格式的安全传输信息。这些信息是可靠的

jwt令牌的组成:
1.Header(头):记录令牌类型和签名算法。如:{“alg”:“HS256”,“type”:“JWT”}
2.Payload(有效载荷):携带一些自定义的信息 例如{“id”:“1”,“username”:“tom”}
3.Signature(签名):防止Token被篡改,确保安全性。将header、payload、并加入指定密钥,通过指定签名算法来计算

在这里插入图片描述
#主要用于登录认证

Jtw令牌的使用

  1. 导入jtw依赖
<denpendency>
  <groupId>io.jsonwebtoken</groupId>
	<artifactId>jjwt</artifactId>
	<version>0.9.1</version>
</dependency>

2.生成jwt令牌
在这里插入图片描述3.校验jwt令牌
在这里插入图片描述

//parseClaimsJwt(jwt),不需要解析签名
//parse(jwt),需要解析签名
 public static Claims parseJWT(String jwt)
{
Claims claims=Jwts.parser().setSigningKey(signkey).parseClaimsJwt(jwt).getBody();

Claims claims = (Claims) Jwts.parser().setSigningKey(signkey).parse(jwt).getBody();
  return claims;
}

错误解析

java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
//按照以上步骤,如果还是报错的话,如果您的项目使用了 Maven 或 Gradle 等构建工具,请确保您的项目依赖项中包含了适用于 Java 9+ 的 JAXB 实现。在 Maven 中,您可以在 pom.xml 文件中添加以下依赖项:
<dependency>-->
         <groupId>javax.xml.bind</groupId>-->
          <artifactId>jaxb-api</artifactId>-->
          <version>2.3.1</version>-->
</dependency>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/712483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】count()查询性能梳理

【MySQL】count()查询性能梳理 1、背景 使用的数据库是MySQL8&#xff0c;使用的存储引擎是Innodb。 通常情况下&#xff0c;分页接口一般会查询两次数据库&#xff0c;第一次是获取具体数据&#xff0c;第二次是获取总的记录行数&#xff0c;然后把结果整合之后&#xff0c…

【VB6|第19期】vb6通过COM组件操作Excel

日期&#xff1a;2023年7月3日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xff…

软件测试工程师必备的27个基础技能

混迹于软件测试这么长时间了&#xff0c;一直想写一篇关于软件测试的经验分享的文章&#xff0c;但苦于工作原因迟迟未下笔。最近终于有了些闲余时间&#xff0c;遂决定把自己的心路历程及所感所想记录下来&#xff0c;与各位同行共勉。 以我多年的工作经验来看&#xff0c;软…

处理glibc堆栈缓冲区溢出漏洞(CVE-2018-11236)

GNU C Library&#xff08;又名glibc&#xff0c;libc6&#xff09;是一种按照LGPL许可协议发布的开源免费的C语言编译程序。 GNU C库&#xff08;aka glibc或libc6&#xff09;中的stdlib/canonicalize.c处理非常长的路径名参数到realpath函数时&#xff0c;可能会遇到32位体系…

判断平台现货白银价格趋势方法有哪些?

新手投资者面对平台现货白银走势总是束手无策&#xff0c;那是因为新手投资者对市场的运行规律&#xff0c;以及对一些常用的技术分析工具并不熟悉&#xff0c;最后无法判断市场走向&#xff0c;所以交易获利也无从谈起。下面&#xff0c;我们一起来讨论一些可以判别趋势的工具…

imazing是什么软件? iMazing 2.17.3备份神器,iPhone相册管理超方便!!!

相信很多小伙伴们听说过imazing&#xff0c;那么imazing这是一款什么软件呢&#xff0c;imazing是一款iOS设备管理软件&#xff0c;这款软件支持对基于iOS系统的设备进行数据传输与备份。 imazing是什么软件 答&#xff1a;imazing是一款iOS设备管理软件。 imazing是一款iOS设…

Steam搬运饰品诈骗套路,及补救措施

这几个月&#xff0c;圈内频频有人曝出Steam库存饰品被盗。今天我就来聊聊饰品安全问题&#xff0c;相信也是大家最关注的问题。 其实&#xff0c;市面上绝大多数库存被盗问题都是因为Steam安全信息泄露导致的。 最常见的钓鱼信息就是从Steam自身而来&#xff0c;例如Steam好友…

【测试数据】关于多路播放在mesh中卡顿问题

测试环境 ![(https://img-blog.csdnimg.cn/ab2c3fb7f4b945c3af2a8ecf36bd3d99.jpeg#pic_center) 各种场景数据 WEB端播放 web6路 VID_3路慢点 web第三路慢点 客户端播放 客户端6路 客户端vsWeb wifi vS mesh wifi Vs Mesh链路 wifi下还是很流畅&#xff0c;九路

用C语言实现“括号匹配“问题

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f…

Springboot整合Activiti详解

文章目录 版本依赖配置文件需要注意的问题画流程图activiti服务类进行编写流程部署流程定义启动流程流程实例 测试流程启动流程完成任务受理任务 版本依赖 开发工具 IDEASpringBoot 2.4.5&#xff08;这里我试过SpringBoot 3.1.1版本&#xff0c;Activiti没有启动&#xff0c;…

现代卓越首席咨询顾问张智喨受邀为第十二届中国PMO大会演讲嘉宾

现代卓越首席咨询顾问张智喨老师受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;BANI时代下如何打造价值导向型PMO。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1a; 在BANI时代下&#xff0c;企…

机器学习14:稀疏性-Sparsity

现实世界中&#xff0c;问题的特征的数量往往是很大的&#xff0c;而其中起决定性作用的往往是很小的一部分&#xff0c;稀疏规则化算子的引入会学习去掉这些没有信息的特征&#xff0c;也就是把这些特征对应的权重置为 0。 1.稀疏性正则化&#xff1a;L₁ 正则化 稀疏向量通常…

Docker容器初识篇

学习-https://vuepress.mirror.docker-practice.com/basic_concept/container/ https://www.bookstack.cn/cate 什么是Docker Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后&#xff0c;在其上运行一个完整操作系统&#xff0c;在该系统上再运行所需应…

时间序列分解 | Matlab集合经验模态分解EEMD的信号分解

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列分解 | Matlab集合经验模态分解EEMD的信号分解 部分源码 %--------------------

JavaWeb学习路线(10)—— 关于SpringBoot的原理

一、配置文件优先级 在Springboot框架三s种配置文件的格式 application.propertiesapplication.ymlapplication.yaml Springboot是支持多配置文件的&#xff0c;所以当我们使用两种配置文件配置相同参数时&#xff0c;Springboot会执行哪一个配置文件呢&#xff1f;这就是Sp…

FFmpeg5.0源码阅读—— avcodec_open2

摘要&#xff1a;本文主要描述了FFmpeg中用于打开编解码器接口avcodec_open2大致流程的具体调用流程&#xff0c;详细描述了该接口被调用时所作的具体工作。   关键字&#xff1a;ffmpeg、avcodec_open2大致流程   注意&#xff1a;读者需要了解FFmpeg的基本使用流程&#…

SpringMVC (一) 什么是SpringMVC

一、回顾MVC 1.1、什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写&#xff0c;是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式&#xff0c;MVC是一种架构模式。…

在 ZBrush、Maya 和 Substance 3D Painter 中制作后世界末日女性角色

今天瑞云渲染小编给大家带来了蒂亚戈布兰道 (Thiago Brandao) 分享的设计极其精细后世界末日女性角色背后的秘密&#xff0c;解释了复杂的纹理处理过程&#xff0c;并谈到了创造逼真的面部特征。 介绍 我的名字是蒂亚戈-布兰道。我来自巴西&#xff0c;目前住在这里。从小&…

【AJAX】原生AJAX

目录 一、AJAX的使用场景 二、原生的AJAX 三、HTTP &#xff1a; 1、原生AJAX GET请求 1、原生AJAX POST请求 四、总结 一、AJAX的使用场景 1、页面不刷新的情况下&#xff0c;浏览器等搜索框输入某关键字出现多个搜索选择内容,如下图所示&#xff1a; 2、登录、注册界面输…

前端JS如何实现对复杂文本进行句子分割,将每句话拆分出来?

文章目录 切割句子背景简介前端如何使用NLP&#xff1f;技术实现 切割句子背景简介 开发中遇到一种场景&#xff0c;在做文本翻译这块需求时&#xff0c;需要对输入的原文进行一句一句话的拆分出来&#xff0c;传给后台&#xff0c;获取每句话的翻译结果&#xff0c;便于实现页…