JWT 简单介绍

全称 Json Web Token 致力于网络安全的一套Json开放标准

主要流程

将用户部分信息进行加密,生成一套令牌,存放于客户端

客户端发起请求时,带入此令牌,交由服务端识别令牌真伪

服务端校验完成,开放部分权限,允许接口请求数据

优点:

无需存放于服务端,极大减轻服务端压力

服务端安全性,较有提升(本来就是干这个的)

不限定语言,依赖于Json的流通性

内容介绍

header 声明加密签名的算法与类型

playload 主要用来存放用户信息,以及自定义规则

signature 存放secret(私钥),对header,playload再次加密

详细使用

1. 引入依赖

使用maven

服务端生成token令牌 扔给客户端

1. 编写静态方法 生成token Users是用户信息

设定载荷中的规则 这里我们设定一个小时后失效

将用户的Id存入载荷 用户密码作为私钥

服务端生成token

2. 将token实现机制写入用户登录接口

实现类逻辑

Web逻辑

3. 我这里就直接使用swagger 进行测试了

swagger页面挺漂亮

成功后的返回

token 中返回的字符串 就是我们的令牌了

我们直接将它放入了request的header中

开始做拦截操作

依赖于拦截器进行操作可以考虑 HandlerInterceptor,或者 aspect

1. 实现拦截器HandlerInterceptor

使用拦截器HandlerInterceptor

2. 对token进行拦截与验证

拿到客户端扔给的token 依据JWT自带的解析 解密用户信息

自定义规则验证

3. JWT 验证

依据载荷中的规则处理token 我们设定了时间

依据载荷中的规则

5. 配置过滤规则 这里对所有请求都进行拦截(放行登录) ,实际操作中要对部分访问放行

将拦截器注入到Spring容器

4. 编写其他接口

依据用户主键获取用户信息

5. 依旧利用swagger测试

测试接口

返回信息

返回信息

拦截器拦截成功

因为没有将令牌放入 所以请求是非法的

6. 我们先把刚才生成的token放入swagger给的头信息配置中

swagger高版本自带的

放入令牌后

放入令牌后,请求就成功了

载荷可以定义的规则很多 大家自己去搜刮

如果喜欢用aspect进行拦截 也很简单 这里就不再多说

JWT的源码 可以大体看看 加深下理解

结束

java 令牌解析_Java JWT的令牌机制相关推荐

  1. java 日期 解析_Java日期解析(Java DATE Parsing)

    Java日期解析(Java DATE Parsing) 我有一个java.util.Date的愚蠢问题. 我有这一行代码,但我不明白为什么这个日期是用这种格式无法解析的. public class T ...

  2. java 令牌解析_Java编程guava RateLimiter实例解析

    本文主要研究的是Java编程guava RateLimiter的相关内容,具体如下. 场景1 在流量监管中的应用 约定访问速率(CAR)是流量监管常用技术之一,可以应用在端口进和出方向,一般应用在入方 ...

  3. java 动态解析_Java 如何解析key为动态的json操作

    遇到了这样的json串: "panel": { "8": { "112": 1 }, "11": { "147 ...

  4. java传递实例_Java方法的参数传递机制实例详解

    本文实例讲述了Java方法的参数传递机制.分享给大家供大家参考,具体如下: 参数传递机制 对于程序设计语言来说,一般方法(函数)的参数传递有两种:按值传递和按引用传递. 按值传递意味着当将一个参数传递 ...

  5. java xml解析_Java解析XML(4种方法)

    xml文件 <?xml version="1.0" encoding="utf-8" ?><class><student>& ...

  6. java初反射_java中的反射机制

    前言: ​相信很多人都知道反射可以说是Java中最强大的技术了,它可以做的事情太多太多,很多优秀的开源框架都是通过反射完成的,比如最初的很多注解框架,后来因为java反射影响性能,所以被运行时注解AP ...

  7. java json 解析_Java解析JSON的四种方式

    一.什么是JSON JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于阅读和编写,同时也易于解析和 ...

  8. java sax解析_Java 解析xml 之 SAX解析

    SAX是什么 SAX是一种快速读写XML数据的方式. 局限 1.SAX分析器在解析xml文档时,触发了一系列事件,因为事件本身是有时序性的.因此SAX一旦经过了某个元素,没有办法返回再去访问. 2.S ...

  9. java 内存管理_Java的内存管理机制

    今天去参加腾讯的面试,结果是一塌糊涂.把问道的问题进行整理,希望自己可以有所收获.摘取别人的文章原文 1.Java的内存管理就是对象的分配和释放 分配:内存的分配是程序完成的,程序员通过new关键字为 ...

最新文章

  1. matlab r2012a win10,vs2010和Matlab R2012a 混合编程
  2. sql server 2005 T-SQL @@TRANCOUNT (Transact-SQL)
  3. Linkis1.0下载地址
  4. asp.net 跨页面传值(一)
  5. iOS开发那些事-Git在Xcode中的配置与使用
  6. oracle如何快速查找,Oracle 如何快速查找和删除重复记录
  7. java c# 线程,DART隔离和线程(Java,C#)之间的区别
  8. Know more about _in_memory_undo
  9. Linux内核线程(一)
  10. 7 CSS字体样式属性
  11. [Linux系统编程/网络编程] 笔记目录
  12. VBScript编程教程 [下]
  13. android云新消息接收者全局,消息推送之百度云推送Android集成与用法(示例代码)...
  14. 数据库挖掘 概念 定义 什么是数据挖掘
  15. mysql hugepage_Linux配置HugePage
  16. 记录一个android性能优化宝藏级总结
  17. linux快速查找文件
  18. u深度重装系统详细教程_u深度u盘启动盘安装win7详细步骤
  19. 下位机和上位机通信 学习体会心得
  20. 计算机夏令营英语怎么说,“夏令营”英语怎么说

热门文章

  1. Java异常处理之InvocationTargetException(反射异常)
  2. 【白皮书分享】2021内容营销白皮书.pdf(附下载链接)
  3. 电商独立站-谷歌SEO指标
  4. 加快Linux上yum下载安装包的速度(以CentOS 7,安装gcc为例)
  5. Algorithm:多维数组和矩阵
  6. 生成对抗式网络 GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN等原理介绍、应用介绍及简单Tensorflow实现
  7. 用python快速将excel(含多sheet)导入MySQL(兼容中文)
  8. LeetCode刷题(50)--Word Search
  9. 服务器进bios修改启动顺序,服务器进入bios设置u盘启动
  10. android studio service directory path,Android Studio User目录缓存搬移到指定目录