首页 > 其他分享 >JWT浅了解

JWT浅了解

时间:2023-11-13 20:25:37浏览次数:36  
标签:加密 jwt JWT header token 了解 payload

JWT通过数字签名的方式(让我想起了软考),以json对象为载体,在不同的服务终端之间安全传输信息

是一种授权认证

生成token的原理:通过header的加密方式,对payload进行加密。然后把header和payload再次加密生成signature

贴一下我的settoken

return JWT.create().withAudience(userId) //这里是payload 设置了jwt的audience声明,aud表示该JWT所面向的用户,userId表示用户
                .withExpiresAt(DateUtil.offsetHour(new Date(),2))  //这里是payload,设置了jwt的过期时间
                .sign(Algorithm.HMAC256(password));  //这里是signature,对jwt进行签名

 很明显,我上述没有设置header,一般情况下jwt库会默认提供一组合式的header参数,比如"alg":"HS256",表示使用HMAC SHA-256算法进行签名

如果需要自定义Header,可以使用.withHeader(Map<String, Object> header)方法来设置

 

如何根据token获得当前用户

HttpServletRequest r=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            token=r.getHeader("token");
token=r.getParameter("token");
String adminId=JWT.decode(token).getAudience().get(0);

 

前端如何获取token:将token和用户信息在登录时一起放在localStorage中,在每次发请求时取出localStorage。

标签:加密,jwt,JWT,header,token,了解,payload
From: https://www.cnblogs.com/kun1790051360/p/17830056.html

相关文章

  • 记录--让我们来深入了解一下前端“三清”是什么
     这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前端“三清”在前端开发中,我们经常听到关于“三清”的说法,即window、document、Object。这三者分别代表了BOM(浏览器对象模型)、DOM(文档对象模型)以及JS的顶层对象。在这个体系中,我们通过JavaScript与浏览器......
  • 一文让你了解网络刷卡器的特点和优势
    网络刷卡器一款高性能的多协议电子标签读写器,保持高识读率的同时实现对电子标签的快速读写处理,广泛应用于物流追踪、个人身份识别、人员管理、智能停车场、门禁考勤、公交一卡通、餐饮、金融等多个领域。特点和优势:1)低功耗、高性价比的刷卡器模块。2)读写距离0-10cm,读取时间100ms......
  • CRM系统的销售管理功能,你了解多少?
     很多时候,CRM系统直接被当做是销售管理系统,其实无可厚非,因为CRM系统本身是围绕销售逻辑来实现的,不仅可以有效的优化商机,对商机的把握也是十分精确。下面我们就来详细说说,CRM系统都有哪些销售管理功能?销售管理功能,是所有CRM软件咨询中最为常见的需求,企业销售团队不仅仅面对的是......
  • ??TCP协议:三次握手、四次挥手,你真的了解吗?
    什么是TCP网络分层应⽤层应用层是网络协议栈中的最顶层,主要负责应用程序之间的通信。其中一种常见的应用层协议是HTTP协议,它定义了应用程序之间如何传递报文。传输层传输层是为两台主机之间的应用进程提供端到端的逻辑通信的层级。其中一种常见的传输层协议是TCP协议,它负责可......
  • identityserver,OAuth2.0,JWT之间的关系
    OAuth2.0是一种授权框架,用于应用程序之间安全的共享用户资源,它允许用户授权第三方应用程序访问他们的资源,列如照片,视频,联系人列表等,而不必将用户名和密码提供给第三方应用程序,OAuth2.0通过令牌来代表用户授权,这些令牌可以被第三方应用程序用于访问用户资源,而不必知道用户的凭据。O......
  • innodb存储引擎了解
    mysql常用的存储引擎分为innodb和myisam其中innodb具有支持事务,执行行级锁,支持MVCC,外键,自动增长列,崩溃恢复等特性。并且mysql在5.5.5之后是数据的默认存储引擎文件:mysql的数据都存放的data文件中,其中日志文件包括错误日志,慢查询日志,查询日志还有二进制日志慢查询日志默认时间......
  • 面试官:听说你很了解Java8特性,给我优化一下这段代码吧?
    @[toc]前言在之前的一次面试过程中,我被问到了一道代码优化题:对于下面的代码,你有什么优化的思路呢?booleanhandleStrList(StringstrList){ for(Strings:strList){ if(s.length()%2==0){ returntrue; } }booleanhandleStrList(StringstrList){for(Strings:s......
  • 一篇文章带你了解Python基础测试工具——UnitTest
    一篇文章带你了解Python基础测试工具——UnitTest测试人员一般使用Python作为主语言脚本来进行自动化开发,而Python自带的UnitTest脚本通常就是测试人员首先掌握的那么本篇文章我们将来介绍Python的最基本自动化工具UnitTest来开始我们自动化的第一步我们这篇文章将从以下角度进......
  • SonarQube系列-了解认证&授权配置,基于权限模块批量授权
    参考文档:docs.sonarqube.org/latest/inst…概述SonarQube具有许多全局安全功能:认证和授权机制强制身份认证委派认证除此之外,还可在group/user级别配置:查看一个已存在的项目访问项目的源代码管理一个项目(设置排除模式,调整该项目的插件配置等)管理质量配置,质量阈,实例…安全性的另一......
  • 深入了解Java进程和线程
    Java是一种流行的编程语言,广泛用于开发各种应用程序,从桌面应用到服务器端应用。在Java编程中,进程和线程是两个关键概念,它们对于实现多任务处理和并发性非常重要。本文将深入探讨Java中的进程和线程,以及如何使用它们来构建高效的应用程序。什么是进程?在Java中,进程是一个独立的执行环......