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浅了解的更多相关文章

  1. JWT的浅谈

    在实际工作过程中,运行jmeter脚本的时候,开发给了一个jwt的授权信息,到底是做什么用的呢,翻阅了一些资料,整理如下: 一.JWT(Json Web Token)是什么 JWT是一串格式为xxxx ...

  2. 浅议Grpc传输机制和WCF中的回调机制的代码迁移

    浅议Grpc传输机制和WCF中的回调机制的代码迁移 一.引子 如您所知,gRPC是目前比较常见的rpc框架,可以方便的作为服务与服务之间的通信基础设施,为构建微服务体系提供非常强有力的支持. 而基于. ...

  3. 手撸ORM浅谈ORM框架之基础篇

    好奇害死猫 一直觉得ORM框架好用.功能强大集众多优点于一身,当然ORM并非完美无缺,任何事物优缺点并存!我曾一度认为以为使用了ORM框架根本不需要关注Sql语句如何执行的,更不用关心优化的问题!!! ...

  4. 浅议.NET遗留应用改造

    浅议.NET遗留应用改造 TLDR:本文介绍了遗留应用改造中的一些常见问题,并对改造所能开展的目标.原则.策略进行了概述. 一.背景概述 1.概述 或许仅"遗留应用"这个标题就比较 ...

  5. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  6. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  7. 【uwp】浅谈China Daily 中划词翻译的实现

    学习uwp开发也有一段时间了,最近上架了一个小应用(China Daily),现在准备将开发中所学到的一些东西拿出来跟大家分享交流一下. 先给出应用的下载链接:China Daily , 感兴趣的童鞋 ...

  8. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  9. 看图理解JWT如何用于单点登录

    单点登录是我比较喜欢的一个技术解决方案,一方面他能够提高产品使用的便利性,另一方面他分离了各个应用都需要的登录服务,对性能以及工作量都有好处.自从上次研究过JWT如何应用于会话管理,加之以前的项目中也 ...

  10. 浅谈SQL注入风险 - 一个Login拿下Server

    前两天,带着学生们学习了简单的ASP.NET MVC,通过ADO.NET方式连接数据库,实现增删改查. 可能有一部分学生提前预习过,在我写登录SQL的时候,他们鄙视我说:“老师你这SQL有注入,随便都 ...

随机推荐

  1. Vue.js 动态组件与异步组件

    title: Vue.js 动态组件与异步组件 date: 2024/6/2 下午9:08:50 updated: 2024/6/2 下午9:08:50 categories: 前端开发 tags: ...

  2. 11种排序算法(Python实现)

    10种排序算法(Python实现) 冒泡排序 1. 两重循环,每次都将一个点移动到最终位置 def BubbleSort(lst): n=len(lst) if n<=1: return lst ...

  3. 小程序转发 搜索wxml

    新闻转发 在小程序中要不通过菜单项来完成分享功能,只能通过表单组件中的按钮来完成. 它是通过按钮中的开放能力完成 按钮自定义处理 新闻搜索 搜索wxml 搜索业务的js

  4. React脚手架 创建React项目

    React团队主要推荐使用create-react-app来创建React新的单页应用项目的最佳方式. React脚手架(create-react-app)意义 脚手架是官方提供,零配置,无需手动配置 ...

  5. 使用线程池实现为多个客户端提供Echo服务

    import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; im ...

  6. 判断一个数n是不是快乐数

    引言 题目:编写一个算法来判断一个数n是不是快乐数 来源:网友分享的面试算法题 题目描述 [快乐数定义] 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和. 然后重复这个过程直到这个数变为 ...

  7. 《软件性能测试分析与调优实践之路》第二版-手稿节选-Mysql数据库性能定位与分析

    在做MySQL数据的性能定位前,需要先知道MySQL查询时数据库内部的执行过程.只有弄清SQL的执行过程,才能对执行过程中的每一步的性能做定位分析.如图6-2-1所示. 图6-2-1 从图中可以看到, ...

  8. 各种语言的OEP大全

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 各种语言的OEP大全 日期:2017-5-19 阿珏 教程 ...

  9. Django项目实现分页返回,结合forloop实现编号递增

    需要导入Paginator包 from django.core.paginator import Paginator 实现步骤: 需要设置每页大小 需要获取每页的页码, 查询对应的数据,提供给Pagi ...

  10. 华为交换机配置端口模式时报错:Please renew the default configurations

    场景 在华为交换机上使用混杂端口时报这个错,原因是你之前已经将此端口加入了某个vlan 所以你需要undo之前配置的命令 解决方法 sys int G 0/0/1 #替换为报错的端口 undo por ...