知识点汇总

news/2024/7/16 8:12:45

Java


JWT token


什么是token认证?

基于token的用户认证是一种服务端无状态的认证方式,所谓服务端无状态指的token本身包含登录用户所有的相关数据,而客户端在认证后的每次请求都会携带token,因此服务器端无需存放token数据。

当用户认证后,服务端生成一个token发给客户端,客户端可以放到 cookie 或 localStorage 等存储中,每次请求时带上 token,服务端收到token通过验证后即可确认用户身份。

什么是JWT?

JSON Web Token(JWT)是一个开放的行业标准(RFC 7519),它定义了一种简洁的、自包含的协议格式,用于在通信双方传递json对象,传递的信息经过数字签名可以被验证和信任。

JWT令牌结构  

JWT令牌由Header、Payload、Signature三部分组成,每部分中间使用点(.)分隔,比如:xxxxx.yyyyy.zzzzz

  • Header

头部包括令牌的类型(即JWT)及使用的哈希算法(如HMAC、SHA256或RSA)。

一个例子:

{
    "alg": "HS256",
    "typ": "JWT"
}

将上边的内容使用Base64Url编码,得到一个字符串就是JWT令牌的第一部分。

  • Payload

第二部分是负载,内容也是一个json对象,它是存放有效信息的地方,它可以存放jwt提供的现成字段,比 如:iss(签发者),exp(过期时间戳), sub(面向的用户)等,也可自定义字段。 此部分不建议存放敏感信息,因为此部分可以解码还原原始内容。 一个例子:

{
    "sub": "1234567890",
    "name": "456",
    "admin": true
}

最后将第二部分负载使用Base64Url编码,得到一个字符串就是JWT令牌的第二部分。

  • Signature

第三部分是签名,此部分用于防止jwt内容被篡改。 这个部分使用base64url将前两部分进行编码,编码后使用点(.)连接组成字符串,最后使用header中声明 签名算法进行签名。 一个例子:

HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)

base64UrlEncode(header):jwt令牌的第一部分。

base64UrlEncode(payload):jwt令牌的第二部分。

secret:签名所使用的密钥。

Spring

Mybatis

JPA

MySQL

Redis

MongoDB

Elasticsearch

MQ

Linux

Maven

maven模式怎么切换环境

24种设计模式

业务问题及解决方案


http://www.niftyadmin.cn/n/2891595.html

相关文章

ExtJS实战(5)-dwr

SSH这三个巨擘已经现身了,接下来就轮到我们小型的AJAX框架DWR了。做好DWR的准备工作:导入JAR包->在web.xml配置核心Servlet->编写核心配置文件dwr.xml,我在前面的应用中已经详细介绍过DWR,这里就简单地说一下。DWR是一个JAVA世界里的AJ…

button和submit的区别

button-普通按钮,submit-提交按钮。  submit是button的一个特例,也是button的一种,它把提交这个动作自动集成了,submit和button,二者都以按钮的形式展现,看起来都是按钮,所不同的是type属性和处发响应的事件上。 使用…

【无标题】-一次失败的尝试

南大的下载镜像 libkqueue-dev yum install libtalloc-devel -y ./configure checking for _talloc in -ltalloc... yes checking for _talloc_pooled_object... yes checking for kqueue... no checking for kqueue in -lkqueue... no checking for kqueue in -lkqueue in …

linux基础-统计命令:wc

wc [选项] 文件 -c 统计字节数。 -l 统计行数。 -m 统计字符数。这个标志不能与 -c 标志一起使用。 -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。 -L 打印最长行的长度。 -help 显示帮助信息 --version 显示版本信息 统计指定文件中的字节数、字数、行…

ExtJS实战(6)-extjs+json

好了&#xff0c;铺垫工作做的差不多了&#xff0c;主角闪亮登场。让ExtJS炫起来吧~~&#xff01;<?xml:namespace prefix o />ExtJS本质上也是一个AJAX的框架&#xff0c;但是它和DWR有很大不同&#xff0c;首先&#xff0c;DWR是JAVA世界的产物&#xff0c;而ExtJS是…

windows凭据管理

解决windows凭据无法保存的问题1&#xff1a;运行-gpedit.msc(组策略)-计算机配置-管理模板-系统-凭据分配双击右侧”允许分配保存的凭据用于仅NTLM服务器身份验证“在弹出的窗口中选中“已启用“&#xff0c;单击”显示“&#xff0c;输入键值”TERMSER/*“保存退出后&#xf…

freeradius安装

0.引用 freeradius安装 一个引用 1.去官网选一个版本 官网 我选的2_2_8这个版本&#xff1a;freeradius-2-2-8 我的小记录: 我之前用的github上一个很新的版本结果一直报libkqueue不存在&#xff0c;其实它已经存在了&#xff0c;一直调不通&#xff0c;放弃了. 2.安装…

【JS第31期】闭包

闭包是当函数在其他地方使用的时候能保存下函数所需要的运行环境&#xff0c;也即是函数能保存下函数诞生时的环境。闭包会包含它所在的函数作用域。如&#xff1a; function createFunc(name) {return function(obj1, obj2){var val1 obj1[name];var val2 obj2[name];if (va…